MERGE (SQL)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

MERGEステートメントは、条件に応じて UPDATE または INSERT を実行する。UPDATE と INSERT を組み合わせた操作を行うことから、UPSERT という別名を持つ。

[編集] 標準の構文

SQL:2003 において標準SQLに導入された構文を以下に示す。

 MERGE INTO 主表 USING 副表 ON (条件)
   WHEN MATCHED THEN
     UPDATE SET1 =1 [,2 =2 ...]
   WHEN NOT MATCHED THEN
     INSERT (1 [,2 ...]) VALUES (1 [,2 ...])

[編集] 非標準の構文

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

  • MySQL は INSERT ... ON DUPLICATE KEY UPDATE および REPLACE 構文を採用している。[5][6]
  • SQLite は INSERT OR REPLACE INTO および REPLACE 構文を採用している。[7]

[編集] 脚注

  1. ^ MERGE. Oracle Database SQL言語リファレンス. 2009年9月23日閲覧。
  2. ^ MERGE ステートメント. DB2 Version 9 for Linux, UNIX, and Windows. 2009年9月23日閲覧。
  3. ^ MERGE (Transact-SQL). SQL Server 2008 オンライン ブック. 2009年9月23日閲覧。
  4. ^ MERGE. Firebird 2.1 Language Reference Update. 2009年9月23日閲覧。
  5. ^ INSERT ... ON DUPLICATE KEY UPDATE 構文. MySQL 5.1 リファレンスマニュアル. 2009年9月23日閲覧。
  6. ^ REPLACE 構文. MySQL 5.1 リファレンスマニュアル. 2009年9月23日閲覧。
  7. ^ INSERT. SQL As Understood By SQLite. 2009年9月23日閲覧。