관리 메뉴

밤톨코딩

[SQL] MERGE INTO 사용해서 한번에 데이터를 옮겨보자 본문

LANGUAGE/SQL

[SQL] MERGE INTO 사용해서 한번에 데이터를 옮겨보자

밤유리 2022. 11. 20. 16:07
반응형

A라는 테이블에서 B라는 테이블에 데이터를 옮길 때 하나하나 데이터를 처리하지 않고 MERGE INTO를 사용하여 바로 넣을 수 있는 방법이다.

 

 


 

 

MERGE INTO
MERGE INTO
  테이블1_이름 AS A
USING
  테이블2_이름 AS B
ON
  (A와 B의 조건문)
WHEN MATCHED [AND 추가 조건문1] THEN
  -- UPDATE문 작성
  -- DELETE문 작성
WHEN MATCHED [AND 추가 조건문2] THEN
  -- UPDATE문 작성
  -- DELETE문 작성
WHEN NOT MATCHED [AND 추가 조건문3] THEN
  -- INSERT문 작성

 

조건문도 추가해 줄 수 있어서, 상황에 맞춰서 INSERT, UPDATE, DELETE를 사용해주면 된다.

하지만, NOT MATCHED 에서는 DELETE, UPDATE 문을 사용할 수 없다고 한다.

 

 

 

 

 

NOT MATCHED BY SOURCE

타켓 테이블에는 해당 데이터가 있지만, 기존 테이블에는 없는 경우에는 NOT MATCHED BY SOURCE를 사용하여 특정 row 데이터를 UPDATE, DELETE 할 수 있다.

 

MERGE INTO
  테이블1_이름 AS A
USING
  테이블2_이름 AS B
ON
  (A와 B의 조건문)
NOT MATCHED BY SOURCE THEN
  -- UPDATE문 작성
  -- DELETE문 작성

 

 

 


 

 

이상, 밤톨만큼 코딩했다.

 

 

참고
반응형