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

비표준 구문
데이터베이스 제품 중 일부는 비표준 구문에서 유사한 기능을 제공하는 것도 있다.
 MySQL은 INSERT ... ON DUPLICATE KEY UPDATE 및 REPLACE 구문을 채용하고 있다.
 SQLite는 INSERT OR REPLACE INTO와 REPLACE 구문을 채용하고 있다.

각주

외부 링크 
 Oracle 11g Release 2 documentation on MERGE
 Firebird 2.1 documentation on MERGE
 DB2 v9 MERGE statement
 SQL Server 2008 documentation
 H2 (1.2) SQL Syntax page

SQL 키워드