python - 如何解决:方言“默认”不支持 SQLAlchemy 中的序列增量
问题描述
我有以下查询:
seq = select([tab_setup.columns.ID]).order_by(tab_setup.columns.ID).limit(1)
sel = select([tab_Global.columns.ID_UNIQUE.label('DL_ID'), tab_Global.columns.CV_CNV.label('DL_Conv')]) \
.where(tab_Global.columns.CV_CNV.isnot(None))
stmt = tab_setup.insert().from_select(['DL_ID', 'DL_Conv',next_value(Sequence(seq))] , sel)
据我了解,问题与表“tab_setup”中的自动填充 ID(自动增量)字段有关。传递值的正确方法是什么?
ID 字段是每行 1 的正常自动增量字段。
仅使用序列函数,它会引发错误,建议使用“next_value”
谢谢
解决方案
我找到的解决方案是在选择查询中添加:
func.row_number().over(order_by=tab_Global.columns.ID_UNIQUE)).label('ID')
这将为任何行生成一个序列号;然后如果起始编号不是 1,我创建变量 start_from = 10 并使用以下内容完成上述内容: (start_from + func.row_number()...)