Snowflake + SQLAlchemy自动递增失败

时间:2019-06-19 15:34:48

标签: python sqlalchemy snowflake

我遇到了错误:

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)

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

1 个答案:

答案 0 :(得分:0)

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

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

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