首页 > 解决方案 > 雪花 + sqlalchemy 自动增量失败

问题描述

我收到错误:

sqlalchemy.exc.ArgumentError: Column type DECIMAL(38, 0) on column 'id' is not compatible with autoincrement=True

使用 Snowflake 网站上的官方示例时(https://docs.snowflake.net/manuals/user-guide/sqlalchemy.html#auto-increment-behavior):

Column('id', Integer, Sequence('id_seq'), primary_key=True)

知道正确的方法是什么吗?

标签: pythonsqlalchemysnowflake-cloud-data-platform

解决方案


我遇到了同样的问题。当您在文档中创建表然后使用相同的 MetaData 对象进行插入时,它可以工作,但是当您将表提取到新的元数据中时它会失败。我将在他们的回购中为此打开一个问题。

一种解决方法是显式获取并放置序列的下一个值:

seq = Sequence('id_seq')
nextid = connection.execute(seq)
connection.execute(t2.insert(), [ {'id': nextid, 'data': 'test_insert'}])

推荐阅读