본문으로 이동

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일에 확인함. 

외부 링크