我试图将内容从一个表中的列复制到另一个表中,同时希望为创建的每一行使用递增的数字填充主键列:
我尝试过执行以下操作:
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
如果您使用的是 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)
| 归档时间: |
|
| 查看次数: |
46668 次 |
| 最近记录: |