我有以下查询:
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个。
仅使用Sequence函数,会引发一条错误提示,建议使用“ next_value”
谢谢
答案 0 :(得分:0)
我找到的解决方案是在选择查询中添加:
func.row_number()。over(order_by = tab_Global.columns.ID_UNIQUE))。label('ID')
这将为任何行生成一个序列号;然后如果起始编号不是1,则创建变量start_from = 10并使用((start_from + func.row_number()...)