반응형
테이블 마이그레이션 작업에 많이 사용되는 테이블 머지 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 |