[ORACLE] 이게 MERGE...?

privatekim·2024년 6월 25일
0

ORACLE

목록 보기
20/38

INSERT, UPDATE, DELETE를 한꺼번에 수행하는 SQL문

MERGE의 문법은 대략적으로 다음과 같다.

MERGE INTO USING ON

MERGE INTO target_table t
USING source_table s
ON (t.id = s.id) -- 조인조건
WHEN MATCH THEN
	UPDATE SET		t.val1 = s.val1 * 1.1 
    DELETE WHERE	s.flag = 'd'
WHEN NOT MATCH THEN
	INSERT (t.val2, t.val3) VALUES(s.val2,s.val3);

위 작업을 여러개의 insert, update, delete 문을 통해 실행할 수 있지만, MERGE문을 사용함으로서 실행 계획도 줄이고, io를 줄이면서 더 깔끔하고 성능 좋은 SQL을 작성할 수 있다.

주의점

이미 target_table과 source_table이 기술되어 있으므로 insert/update/delete를 할 때 테이블 기술을 생략하고 약어로 데이터를 기술한다.

0개의 댓글