MERGEステートメントは、条件に応じてUPDATEまたはINSERTを実行する。UPDATEとINSERTを組み合わせた操作を行うことから、UPSERTという別名を持つ。 SQL:2003
標準の構文
以下のデータベースなどでサポートされている。 データベース製品の中には、標準とは異なる構文で同様の機能を提供しているものもある。
Oracle Database[1]
DB2[2]
Microsoft SQL Server[3]
Firebird[4]
PostgreSQL[5]
非標準の構文
MySQLはINSERT ... ON DUPLICATE KEY UPDATEおよびREPLACE構文を採用している[6][7]。
PostgreSQLはINSERT ... ON CONFLICT構文を採用している[8]。
SQLiteはINSERT OR REPLACE INTOおよびREPLACE構文を採用している[9]。
脚注^ “ ⇒MERGE”. Oracle Database SQL言語リファレンス. 2009年9月23日閲覧。
^ “ ⇒MERGE ステートメント”. DB2 Version 9 for Linux, UNIX, and Windows. 2009年9月23日閲覧。
^ “ ⇒MERGE (Transact-SQL)”. SQL Server 2008 オンライン ブック. 2009年9月23日閲覧。
^ “ ⇒MERGE”. Firebird 2.1 Language Reference Update. 2009年9月23日閲覧。
^ “MERGE
^ “ ⇒INSERT ... ON DUPLICATE KEY UPDATE Syntax”. MySQL 5.1 Reference Manual. 2014年12月8日閲覧。
^ “ ⇒REPLACE Syntax”. MySQL 5.1 Reference Manual. 2014年12月8日閲覧。
^ “INSERT
表
話
編
歴
データベース管理システム
データモデル
関係モデル
データベース設計
正規化
参照整合性
関係代数
関係論理
データベース管理システム
関係データベース管理システム
オブジェクト関係データベース
分散データベース
トランザクション処理
概念
データベース
ACID
CRUD
3値論理(NULL)
候補キー
外部キー
主キー
スーパーキー
代理キー
オブジェクト
関係 (表)
ビュー
トランザクション
ログ
トリガ
索引
ストアドプロシージャ
カーソル
分割
SQL
SELECT
INSERT
UPDATE
MERGE
DELETE
JOIN
CREATE
DROP
COMMIT