Indexing DB2插入查询
有一个表应用程序Indexing DB2插入查询,indexing,insert,db2,primary-key,where-clause,Indexing,Insert,Db2,Primary Key,Where Clause,有一个表应用程序 从应用程序中选择*,其中应用程序\u number='123456'提供以下信息 ID Application_number DATE location 12 123456 2015/05/01 UK 15 123456 2015/05/02 US 18 123456 2015/04/02 ASIA 58
从应用程序中选择*,其中应用程序\u number='123456'
提供以下信息
ID Application_number DATE location
12 123456 2015/05/01 UK
15 123456 2015/05/02 US
18 123456 2015/04/02 ASIA
58 123456 2015/04/02 APAC
我想插入ID为54的行
我提出的疑问
INSERT INTO Application ( ID, Application_number) SELECT 54 as ID , application_number FROM Application WHERE application_number='123456'
结果应该是
ID Application_number DATE location
12 123456 2015/05/01 UK
15 123456 2015/05/02 US
18 123456 2015/04/02 ASIA
58 123456 2015/04/02 APAC
54 123456 date and location doesnt matter
给我一个错误
INSERT语句、UPDATE语句或
DELETE语句导致的外键更新无效,因为
“1”标识的主键、唯一约束或唯一索引
限制表“CFTSDB.A”的索引值不重复
钥匙SQLSTATE=23505
请问有人能帮忙吗?提前感谢。您的插入已完成
INSERT INTO
Application (ID, Application_number)
SELECT
54 as ID,
application_number
FROM Application
WHERE application_number='123456'
如果只执行其中的SELECT部分,它可能会返回如下内容:
ID | Application_number
----+-------------------
54 | 123456
54 | 123456
54 | 123456
54 | 123456
INSERT INTO Application
(ID, Application_number)
VALUES
(54, '123456')
这意味着,insert尝试插入4行,所有行的ID均为54。这无法工作,因为您的ID可能是唯一的
如果只想在ID 54处插入一条新记录,应执行以下操作:
ID | Application_number
----+-------------------
54 | 123456
54 | 123456
54 | 123456
54 | 123456
INSERT INTO Application
(ID, Application_number)
VALUES
(54, '123456')
您真的需要插入此特定ID吗?为什么?您的示例
中有4行,其中应用程序\u number='123456'
,因此您的INSERT
语句尝试插入ID等于54的4行。@mustaccio是否有其他方法来达到要求?我怎样才能根据需求修改我的查询?谢谢。我不明白你的要求。