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

비표준 구문[편집]

데이터베이스 제품 중 일부는 비표준 구문에서 유사한 기능을 제공하는 것도 있다.

  • MySQL은 INSERT ... ON DUPLICATE KEY UPDATE 및 REPLACE 구문을 채용하고 있다.[5][6]
  • SQLite는 INSERT OR REPLACE INTO와 REPLACE 구문을 채용하고 있다.[7]

주석[편집]

  1. “MERGE”. 《Oracle Database SQL 언어 참조》. 2009-09-23에 확인함. 
  2. “MERGE 문”. 《DB2 Version 9 for Linux, UNIX, and Windows》. 2009-09-23에 확인함. 
  3. “MERGE (Transact-SQL)”. 《SQL Server 2008 온라인 설명서》. 2009-09-23에 확인함. 
  4. “MERGE”. 《Firebird 2.1 Language Reference Update》. 2009-09-23에 확인함. 
  5. “INSERT ... ON DUPLICATE KEY UPDATE 構文”. 《MySQL 5.1 リファレンスマニュアル》. 2009-09-23에 확인함. 
  6. “REPLACE 構文”. 《MySQL 5.1 リファレンスマニュアル》. 2009-09-23에 확인함. 
  7. “INSERT”. 《SQL As Understood By SQLite》. 2009-09-23에 확인함. 

바깥 고리[편집]