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日閲覧。

📚 Artikel Terkait di Wikipedia

DELETE (SQL)

“DELETE”. PostgreSQL 文書. 2009年9月23日閲覧。 ^ “DELETE Syntax”. MySQL 5.1 Reference Manual. 2014年12月8日閲覧。 ^ “DELETE (Transact-SQL)”. SQL Server 2008 オンライン

PHP (プログラミング言語)

Informix Dynamic Server InterBase Microsoft SQL Server mSQL MySQL / MariaDB ODBC Oracle Database PostgreSQL Sybase Adaptive Server Enterprise SQLite Redis

統合言語クエリ

XML (XLinq) LINQ to ADO.NET LINQ to SQL (DLinq / SQL Server専用) LINQ to Entities (SQL Server / Oracle Database / MySQL / SQLite等) LINQ to DataSet

JSON

"hello"; const validJSON = '"hello"'; JSON.parse(invalidJSON) // Thrown: // SyntaxError: Unexpected token h in JSON at position 0 JSON.parse(validJSON) //

名前付きパイプ

UNIXドメインソケット ^ mkfifo() ^ mknod() ^ MySQL 5.1 Reference Manual :: 12.2.6 LOAD DATA INFILE Syntax ^ http://postgresql.1045698.n5.nabble

Umbraco

WindowsのASP.NETで動作する。データベースは、Microsoft SQL Server、MySQL、Microsoft SQL Server Compact 4 (SQL CE 4) に対応している。最新のユーザインタフェースを備え、html、css、jQueryといった標準的な技術を採用し、

XML

ーマ言語も用意している。スキーマ自体もXMLのXML Schemaの他、XMLではない記法でとても簡潔に大変わかりやすく書ける、Compact Syntaxも用意されているRELAX NGもある。 XMLは、同じく汎用的に使えるマークアップ言語である Standard Generalized Markup

Nemerle

SQL文が正しいかどうかをコンパイル時に検査することも可能である。 Nemerleのマクロを用いると、言語に新しい構文を導入することも可能である。 macro ReverseFor (i, begin, body) syntax ("ford", "(", i, ";"