Db2 iseries 在重复键上插入

Chr*_*ris 1 database db2 db2-400 ibm-midrange

有人知道 DB2 for i (V6r1) 是否支持类似的东西

INSERT ON DUPLICATE KEY UPDATE.
Run Code Online (Sandbox Code Playgroud)

我需要使用连接进行更新,但不想使用子查询。

小智 6

您可以通过使用“MERGE”来解决这个问题。像这样:

1.第一步:表'TEST'有一个表结构(A,B,C),主键'A',存在数据记录(1,2,3)。

2.第二步:现在您可以使用此 SQL 命令插入一条记录 (1,9,9),如下所示:

MERGE INTO TEST AS T
USING (VALUES( 1, 9,  9))  AS DAT(A, B,  C)
ON T.A = DAT.A 
WHEN MATCHED THEN UPDATE  SET T.C = DAT.C
WHEN NOT MATCHED THEN  INSERT (A, B,  C)  VALUES (DAT.A, DAT.B, DAT.C)
Run Code Online (Sandbox Code Playgroud)