MERGEステートメントは、条件に応じてUPDATEまたはINSERTを実行する。UPDATEとINSERTを組み合わせた操作を行うことから、UPSERTという別名を持つ。
SQL:2003において標準SQLに導入された構文を以下に示す。
MERGE INTO 主表 USING 副表 ON (条件)
WHEN MATCHED THEN
UPDATE SET 列1 = 値1 [, 列2 = 値2 ...]
WHEN NOT MATCHED THEN
INSERT (列1 [, 列2 ...]) VALUES (値1 [, 値2 ...])
以下のデータベースなどでサポートされている。
データベース製品の中には、標準とは異なる構文で同様の機能を提供しているものもある。
INSERT ... ON DUPLICATE KEY UPDATE
およびREPLACE
構文を採用している[6][7]。INSERT ... ON CONFLICT
構文を採用している[8]。INSERT OR REPLACE INTO
およびREPLACE
構文を採用している[9]。