MERGE
是 SQL 中用来进行「合併操作」的指令,常用于在一个查询中,同时处理 INSERT、UPDATE 和 DELETE 的情况
MERGE target_table AS target
USING source_table AS source
ON target.key = source.key
WHEN MATCHED THEN
UPDATE SET target.col1 = source.col1, ...
WHEN NOT MATCHED BY TARGET THEN
INSERT (col1, col2, ...) VALUES (source.col1, source.col2, ...)
WHEN NOT MATCHED BY SOURCE THEN
DELETE;
MERGE target_table
:要更新的目标资料表。
USING source_table
:来源资料表,可以是表格、子查询或 CTE。
ON
:定义匹配条件(主键或唯一栏位等)。
WHEN MATCHED THEN
:如果找到相符的资料(符合 ON 条件),就执行 UPDATE
。
WHEN NOT MATCHED BY TARGET THEN
:来源表有、目标表没有 → 执行 INSERT
。
WHEN NOT MATCHED BY SOURCE THEN
:目标表有、来源表没有 → 执行 DELETE
。
自我LV~