SQL

Merge (통합)

행복하게사는게꿈 2020. 2. 13. 19:53

Merge란?

 

 - 조건에 따라서 데이터의 삽입, 삭제, 갱신 작업을 한번에 수행 가능

 

 - 해당 행이 존재하는 경우 UPDATE / DELETE를 수행하고, 새로운 행일 경우 INSERT 수행한다.

 

 - 대상 테이블에 대한 UPDATE / INSERT 조건은 ON 절에 의해 결정된다.

 

 

MERGET Syntax

- INTO : data가 UPDATE 되거나 INSERT 될 테이블 또는 뷰를 지정

 

- USING : 비교할 테이블 또는 VIEW나 SUB-QUERY를 지정

 

             * INTO 절의 테이블과 동일하거나 다를 수 있음

 

               리터럴 값도 올 수 있음 - USING (VALUES (리터럴 값1), (리터럴 값 2) )

 

 

- ON : UPDATE나 INSERT를 하게 될 조건으로, 해당 조건을 만족하는 data가 있으면

  

         WHEN MATCHGED 절을 실행, 없으면 WHEN NOT MATCHED 절을 실행

 

- WHEN MATCHED : ON 조건절이 TRUE인 ROW에 수행 할 내용 (UPDATE, DELETE)

 

- WHEN NOT MATCHED : ON 조건절에 맞는 ROW가 없을 때 수행할 내용 (INSERT)

 

 

 

실습

 

1.

 

2.

단일 테이블을 MERGE 할 땐 dual 테이블을 이용 가능

 

3.