我喜欢MySql的REPLACE INTO table一个非常有用的陈述是“替换一个值if-exist或INSERT INTO表If-Not-Exist”。
db2的文档 REPLACE仅针对在字符串上操作的函数,因此不具有该含义。
db2中有任何等效项吗?现在我也在寻找关键词IF EXSTS/IF NOT EXIST。
DB2使用SQL标准MERGE语句执行基本相同的操作。语法不同:
MERGE INTO table_to_upsert AS tab
USING (VALUES
(1, 2, 3),
(4, 5, 6),
(7, 8, 9)
-- more rows
) AS merge (C1, C2, C3)
ON tab.key_to_match = merge.key_to_match
WHEN MATCHED THEN
UPDATE SET tab.C1 = merge.C1,
tab.C2 = merge.C2,
tab.C3 = merge.C3
WHEN NOT MATCHED THEN
INSERT (C1, C2, C3)
VALUES (merge.C1, merge.C2, merge.C3)
Run Code Online (Sandbox Code Playgroud)