Back-end/DataBase

[SQL] 테이블 병합 MARGE

cheersHena 2023. 1. 10. 20:05
반응형
테이블 마이그레이션 작업에 많이 사용되는 테이블 머지 SQL문을 알아보자.
테이블 마이그레이션 작업이란 테이블1의 모든 데이터를 테이블 2로 옮기는 작업이라고 생각하면 된다.
1차로는 INSERT로 모든 데이터를 새 테이블이 넣어준다.
문제는 데이터의 변동이 없다면 INSERT로 덮어칠 수 있지만 데이터의 변동이 있는 경우 선별적으로 변동된 데이터만 업데이트 시켜주어야 하는 경우가 발생한다.
이런 경우에는 어떤 데이터의 변동이 있었는지 체크한 후, 데이터의 변동이 있는 컬럼만 UPDATE시켜주고, 새로운 데이터가 추가되었다면 INSERT 해 주어야 한다.
IF 조건문을 통해 나누어 작업할 수도 있겠지만 이러한 작업을 한번에 해 주는 것이 MERGE 문이다. 비교-삽입-갱신 과정을 한번에 처리하는 것이다.
  • MARGE 문법
MARGE INTO [타켓테이블] 
      USING [기존테이블] //테이블 뷰나 서브쿼리생성 가능 
      ON [두테이블 비교 조건]
   WHEN MATCHED THEN //조건에 일치하는 경우
        UPDATE ... //명령수행. 
   WHEN NOT MATCHED THEN //일치하지 않는 경우 
        INSERT ... //명령수행 
       
 
마이바티스 태그에서는 <update>태그를 주로 사용. 
 

 

반응형

'Back-end > DataBase' 카테고리의 다른 글

[MYSQL] REGEXP란? 정규표현식 / 무료테스트사이트  (0) 2022.12.21
[DBMS] Orange 단축키 정리  (0) 2022.03.02
[ORACLE] NVL 함수란? 쿼리 널처리  (3) 2022.03.02
[SQL] WITH 절이란?  (0) 2022.02.04
[DB2] WITH UR 이란?  (0) 2021.11.16