Merge (SQL)

위키백과, 우리 모두의 백과사전.
(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년 2월 15일에 원본 문서에서 보존된 문서. 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. “INSERT ... ON DUPLICATE KEY UPDATE 構文”. 《MySQL 5.1 リファレンスマニュアル》. 2009년 9월 23일에 확인함. 
  6. “REPLACE 構文”. 《MySQL 5.1 リファレンスマニュアル》. 2009년 9월 23일에 확인함. 
  7. “INSERT”. 《SQL As Understood By SQLite》. 2009년 9월 23일에 확인함. 

외부 링크[편집]