MERGE (SQL)

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 ...])以下のデータベースなどでサポートされている。
 Oracle Database
 DB2
 Microsoft SQL Server
 Firebird
 PostgreSQL

 非標準の構文 
データベース製品の中には、標準とは異なる構文で同様の機能を提供しているものもある。

 MySQLはINSERT ... ON DUPLICATE KEY UPDATEおよびREPLACE構文を採用している。
 PostgreSQLはINSERT ... ON CONFLICT構文を採用している。
 SQLiteはINSERT OR REPLACE INTOおよびREPLACE構文を採用している。

 脚注 

Category:コンピュータ言語の文
Category:SQL