밤톨코딩
[SQL] MERGE INTO 사용해서 한번에 데이터를 옮겨보자 본문
반응형
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문 작성
이상, 밤톨만큼 코딩했다.
참고
반응형
'LANGUAGE > SQL' 카테고리의 다른 글
[MariaDB] 데이터가 저장되어 있는 위치 찾는 방법은? (0) | 2025.01.15 |
---|---|
[SQL] 데이터베이스 이름 변경 (0) | 2022.11.09 |
[SQL] TRUNCATE, DELETE, DROP 차이점 정리 (0) | 2022.11.08 |