SQL

[ SQL ORACLE ] MERGE INTO 사용 이유와 사용방법

Development Storage 2021. 9. 1. 17:17

MERGE INTO란 조건의 일치하는 경우와 일치하지 않는 경우에

INSERT, UPDATE, DELETE를 선택적으로 할 수 있게 해주는 명령어이다

 

[ MERGE 구문 ]

MERGE

  INTO { TABLE | VIEW }

USING { TABLE | VIEW | SUBQUERY } { INTO와 동일한 테이블이면 DUAL사용 }

  ON ( { WHERE절의 기능과 같은 조건절 } )

 WHEN MATCHED THEN { 일치하는 경우 }

           UPDATE or DELETE

 WHEN NOT MATCHED THEN { 불일치하는경우 }

           INSERT

 

[ MERGE EX ]

(1) 동일 테이블

MERGE

  INTO emp

USING dual

  ON ( empno = '9999' and deptno = '20' )

 WHEN MATCHED THEN

           UPDATE SET sal * 0.2

 WHEN NOT MATCHED THEN

           INSERT ( ...... )

 

(2) 다른 테이블

MERGE

  INTO emp a

USING deptno b

  ON ( a.deptno = b.deptno and a.deptno = '20' )

 WHEN MATCHED THEN

           UPDATE SET a.sal * 0.2

 WHEN NOT MATCHED THEN

           INSERT ( ...... )