오라클 MERGE INTO - INSERT, UPDATE 구문 사용하기
오라클 MERGE INTO - INSERT, UPDATE
데이터베이스에 INSERT 할 때, 존재하는 ROW 데이터일 경우 UPDATE 하고 존재하지 않는 ROW 데이터일 경우 INSERT 하는 구문을
한번에 사용하고자 할 때가 있습니다.
보통 SELECT를 한 후 ROW데이터를 확인하고, 로직에 의해 분기처리 해서 INSERT 또는 UPDATE 를 사용하기도 합니다.
이 방법을 MERGE INTO 구문으로 대처할 수 있습니다.
MERGE INTO 구문 입니다.
MERGE INTO table_name alias
USING (table | view | subquery) alias -- 하나의 테이블만 이용한다면 DUAL 활용
ON (join condition) -- WHERE절에 조건 쓰듯이
WHEN MATCHED THEN -- ON 이하의 조건에 해당하는 데이터가 있는 경우
UPDATE SET col1 = val1[, ...] -- UPDATE 실행
WHEN NOT MATCHED THEN -- ON 이하의 조건에 해당하는 데이터가 없는 경우
INSERT (column lists) VALUES (values); -- INSERT 실행
* Oracle 10g 이후에는 WHEN MATCHED, WHEN NOT MATCHED 이하의 update, insert 구문에도 where절을 쓸 수 있습니다.