머지문 중요 !!**

이경현·2025년 6월 13일

[6] MERGE INTO - 한번에 INSERT, UPDATE

  • 특정 조건의 데이터가 존재하면 해당값 update, 없는 경우 새로 데이터를 insert 해줌.
MERGE INTO table_name alias                  	    -- UPDATE, INSERT, DELETE 할 테이블
         USING (table | view | subquery) alias   	    -- 비교대상 테이블 (하나의 테이블만 이용한다면 DUAL 활용)
            ON (join condition)                  	    -- WHERE절에 조건 쓰듯이

          WHEN MATCHED THEN                      	    -- ON 이하의 조건에 해당하는 데이터가 있는 경우 
               UPDATE SET col1 = val1[, ...]            -- UPDATE 실행
               DELETE WHERE (m.deptno = 20)             -- DELETE 실행

          WHEN NOT MATCHED THEN                  	    -- ON 이하의 조건에 해당하는 데이터가 없는 경우
               INSERT (column lists) VALUES (values);   -- INSERT 실행

!주의 : 오라클 9버전 이상에서 사용가능,
10G부터 DELETE문 사용가능,
트리거 발생안함,
조건절 사용 컬럼은 업데이트 불가.(조건은 키만)

0개의 댓글