我尝试在DB2(v9.7)的同一个表中更新是否存在,或者插入到是否不存在。
我有一个表“V_OPORNAC”(方案是SQLDBA),它包含三列,其中有两个主键:艾地司特(PK)、艾地泊Z(PK)、奥泊纳
我的情况是,如果IDESTE = 123456 AND IDEPOZ = 0的数据(OPONAR)不存在,则插入新行,如果存在,则更新(OPONAR)。我尝试过以下方法:
MERGE INTO SQLDBA.V_OPONAROC AS O1
USING (SELECT IDESTE, IDEPOZ, OPONAR FROM SQLDBA.V_OPONAROC WHERE IDESTE = 123456 AND IDEPOZ = 0) AS O2
ON (O1.IDESTE = O2.IDESTE)
WHEN MATCHED THEN
UPDATE SET
OPONAR = 'test text'
WHEN NOT MATCHED THEN
INSERT
(IDESTE, IDEPOZ, OPONAR)
VALUES (123456, 0, 'test new text')
执行上面的代码时出现此错误:
Query 1 of 1, Rows read: 0, Elapsed time (seconds) - Total: 0,013, SQL query: 0,013, Reading results: 0
Query 1 of 1, Rows read: 3, Elapsed time (seconds) - Total: 0,002, SQL query: 0,001, Reading results: 0,001
Warning: DB2 SQL Warning: SQLCODE=100, SQLSTATE=02000, SQLERRMC=null, DRIVER=4.21.29
SQLState: 02000
ErrorCode: 100
1条答案
按热度按时间z9zf31ra1#
通过使用“SYSIBM.SYSDUMMY1”,我发现