コンテンツにスキップ

MERGE (SQL)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

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 ...])

以下のデータベースなどでサポートされている。

非標準の構文

[編集]

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

  • MySQLINSERT ... ON DUPLICATE KEY UPDATEおよびREPLACE構文を採用している[6][7]
  • PostgreSQLINSERT ... ON CONFLICT構文を採用している[8]
  • SQLiteINSERT OR REPLACE INTOおよびREPLACE構文を採用している[9]

脚注

[編集]
  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. ^ MERGE”. PostgreSQL: Documentation: 15. 2022年10月17日閲覧。
  6. ^ INSERT ... ON DUPLICATE KEY UPDATE Syntax”. MySQL 5.1 Reference Manual. 2014年12月8日閲覧。
  7. ^ REPLACE Syntax”. MySQL 5.1 Reference Manual. 2014年12月8日閲覧。
  8. ^ INSERT”. PostgreSQL 9.6.5文書. 2019年2月8日閲覧。
  9. ^ INSERT”. SQL As Understood By SQLite. 2009年9月23日閲覧。
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy