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~