오라클 MERGE INTO - INSERT, UPDATE 구문 사용하기

가이드문구

오라클 MERGE INTO - INSERT, UPDATE

데이터베이스에 INSERT 할 때, 존재하는 ROW 데이터일 경우 UPDATE 하고 존재하지 않는 ROW 데이터일 경우 INSERT 하는 구문을 

한번에 사용하고자 할 때가 있습니다.

보통 SELECT를 한 후 ROW데이터를 확인하고, 로직에 의해 분기처리 해서 INSERT 또는 UPDATE 를 사용하기도 합니다.

이 방법을 MERGE INTO 구문으로 대처할 수 있습니다.


MERGE INTO 구문 입니다.


  1. MERGE INTO table_name alias
  2.     USING (table | view | subquery) alias -- 하나의 테이블만 이용한다면 DUAL 활용
  3.     ON (join condition) -- WHERE절에 조건 쓰듯이
  4. WHEN MATCHED THEN -- ON 이하의 조건에 해당하는 데이터가 있는 경우
  5.     UPDATE SET col1 = val1[, ...] -- UPDATE 실행
  6.     WHEN NOT MATCHED THEN -- ON 이하의 조건에 해당하는 데이터가 없는 경우
  7.     INSERT (column lists) VALUES (values); -- INSERT 실행


* Oracle 10g 이후에는 WHEN MATCHED, WHEN NOT MATCHED 이하의 update, insert 구문에도 where절을 쓸 수 있습니다. 

작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^