python - 雪花 + 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)
知道正确的方法是什么吗?
解决方案
我遇到了同样的问题。当您在文档中创建表然后使用相同的 MetaData 对象进行插入时,它可以工作,但是当您将表提取到新的元数据中时它会失败。我将在他们的回购中为此打开一个问题。
一种解决方法是显式获取并放置序列的下一个值:
seq = Sequence('id_seq')
nextid = connection.execute(seq)
connection.execute(t2.insert(), [ {'id': nextid, 'data': 'test_insert'}])
推荐阅读
- python - 我需要使用 matplotlib 或 seaborn 绘制分组数据
- flutter - 你能以编程方式将 Draggable 放在 DragTarget 中吗?
- javascript - 带有来自多个 Ajax 请求的大型数据集的 Jquery DataTable
- c# - 映射 1-0..1 与没有 FK 的导航属性的关系
- excel - 对数据进行排序以匹配列表列的顺序 - Excel VBA
- javascript - 刷新时图像不会停止闪烁
- ios - SwiftUI 试图从列表中删除对象但无法在不可变值上使用变异成员:是一个“让”常量
- python - 如何更快地从字典列表中的值中删除字符?
- javascript - Sapper $Session 更改直到页面重新加载才反映
- java - 空Java程序中的大尺寸对象