【发布时间】:2018-06-24 21:00:07
【问题描述】:
我正在尝试使用插入语句将数据插入到表中,结果来自 DB2 中的 select 语句。
我遇到了一个需要从特定值自动递增的主键问题,例如:从 100 向上,我应该告诉语句它应该从什么值递增,但它不起作用。
插入语句如下所示:
insert into table1 (col1, col2, col3, col4 ,col5)
select par1, par2, par3, par4, par5 from table2;
使用此语句它会自动导入主键,这是错误的,因为它应该从特定值生成/自动递增。
我尝试创建一个变量并将其设置为 par1 像这样 var1=var1+1 但它不起作用。
有人有想法吗?
谢谢。
【问题讨论】:
-
您能说出您在商业方面想要实现的目标吗? IMO 主键只是一些无关紧要的(只要是唯一的)值,围绕它的值构建任何逻辑都是一个非常严重的错误。
-
我想创建一个临时表,我可以在其中导入数据,然后将该表中的数据导入到另一个表中,但是在第二个表中,主键从 10000 开始。因此值,我必须为以 10001 开头的行设置主键,然后为第二行 10002 设置主键,依此类推。只是想将临时表中的数据移动到另一个表中,但是临时表中缺少主键,而第二个表需要它。
-
insert语句省略会自动生成,为什么需要具体的值?
-
它不会自动生成,因为创建表时并未考虑到此功能。因此我必须手动创建它。如果我省略主键,它会给出错误 Null not allowed。
-
您是否考虑过创建具有特定起始值的序列?它可以作为读取操作的一部分递增。所以你可以将它包含在 SELECT 语句中