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]
각주
[편집]- ↑ “MERGE”. 《Oracle Database SQL 언어 참조》. 2009년 2월 15일에 원본 문서에서 보존된 문서. 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일에 확인함.
- ↑ “INSERT ... ON DUPLICATE KEY UPDATE 構文”. 《MySQL 5.1 リファレンスマニュアル》. 2009년 9월 23일에 확인함.
- ↑ “REPLACE 構文”. 《MySQL 5.1 リファレンスマニュアル》. 2009년 9월 23일에 확인함.
- ↑ “INSERT”. 《SQL As Understood By SQLite》. 2009년 9월 23일에 확인함.