DB2:使用 select 插入,每次插入时将每个新行的列增加一?

Mo.*_*Mo. 6 sql db2

我试图将内容从一个表中的列复制到另一个表中,同时希望为创建的每一行使用递增的数字填充主键列:

我尝试过执行以下操作:

INSERT INTO Table1 (col1, col2) VALUES((SELECT col1 FROM table2), (SELECT NEXTVAL FOR col2_SEQ FROM sysibm.sysdummy1));
Run Code Online (Sandbox Code Playgroud)

但出现以下错误:

DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned:
SQL0348N  "NEXTVAL FOR col2_SEQ" cannot be specified in this 
context.  SQLSTATE=428F
Run Code Online (Sandbox Code Playgroud)

看来我不能以这种方式使用序列值,还有其他方法可以实现我想要做的事情吗?我只需要 table1 中的 col2 为 table2 中 col1 中的每个新条目填充唯一的 BIGINT

bha*_*mby 4

如果您使用的是 Linux/Unix/Windows(也可能是其他操作系统),我认为您只需要NEXT VALUE FOR sequence. 在这种情况下,您不需要从 sysdummy 进行额外的选择。

INSERT INTO table1 (col1, col2)
    SELECT col1, NEXT VALUE FOR col2_SEQ
    FROM table2
Run Code Online (Sandbox Code Playgroud)