DB2 INSERT INTO SELECT状态将行复制到同一张表中,不允许多行。

我已经找了几天这个问题的答案,但找不到任何参考这个具体问题的资料。

首先,如果我想使用INSERT INTO SELECT语句将表的行复制过来,回到同一个表中,但用新的id和其中的1个列修改,应该能行吗?

举个例子。

INSERT INTO TABLE_A (column1, column2, column3) SELECT column1, 'value to change', column3 from TABLE_A where column 2 = 'original value';

当我在DB2数据库中尝试这样做时,我得到了以下错误:

INVALID MULTIPLE-ROW INSERT. SQLCODE=-533,SQLSTATE=21501,DRIVER=4.18.60。

如果我运行同样的语句,但我在select语句中放入一个特定的ID来返回,确保只返回1条记录,那么语句就会工作。 但这违背了我想做的事情,即把同一表中的多条记录复制到自己的表中,同时把一个特定的列更新为一个新的值。

谢谢大家!我一直在寻找答案。

解决方案:

我在Db2 11.1.4.0上工作得很好,没有错误。

CREATE TABLE TABLE_A( column1 int , column2 varchar(16), column3 int)

INSERT INTO TABLE_A values (1,'original value',3)

INSERT INTO TABLE_A (column1, column2, column3)
SELECT column1, 'value to change', column3 from TABLE_A where column2 = 'original value'

SELECT * FROM TABLE_A

返回

COLUMN1|COLUMN2        |COLUMN3
-------|---------------|-------
      1|original value |      3
      1|value to change|      3

也许有什么东西你没有告诉我们……

给TA打赏
共{{data.count}}人
人已打赏
解决方案

如何读取内存中的excel文件(不保存在磁盘中)并返回其内容 dotnet core

2022-4-20 2:00:10

解决方案

通过微信图形资源管理器的C#实例显示未定义方法。

2022-4-20 2:00:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索