본문 바로가기

개발/데이터베이스

[ORACLE] MERGE

반응형

MERGE문


두 개의 테이블을 특정 조건으로 조인할 때
성공하는 경우 UPDATE절, 실패하는 경우 INSERT 절을 실행


 

MERGE문 작성 방법

MERGE INTO 갱신 또는 삽입할 테이블명 USING 갱신 또는 삽입 기준에 이용하는 테이블명 ON (조건) WHEN MATCHED THEN UPDATE SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건문 WHEN NOT MATCHED THEN INSERT ( 컬럼1, 컬럼2, 컬럼3 ) VALUES ( 값1, 값2, 값3 );

 


 

예시쿼리


아래의 쿼리는 MEMBER_PREMIUM, MEMBER라는 두 테이블이 있다고 가정하고 작성되었다.

▶ MEMBER_PREMIUM

MEMBER_CODE MEMBER_NAME GRADE
1 김자바 4
2 이디비 1
3 박파이썬 4


▶ MEMBER

MEMBER_CODE MEMBER_NAME GRADE
1 김자바 4
2 이디비 1
3 박파이썬 5
4 한오라클 3
5 백코틀린 2


▶ 쿼리문 실행

MERGE INTO MEMBER_PREMIUM A USING MEMBER B ON (A.MEMBER_CODE = B.MEMBER_CODE) WHEN MATCHED THEN UPDATE SET A.GRADE= B.GRADE WHERE A.MEMBER_CODE = B.MEMBER_CODE WHEN NOT MATCHED THEN INSERT ( A.MEMBER_CODE, A.MEMBER_NAME, A.GRADE ) VALUES ( B.MEMBER_CODE, B.MEMBER_NAME, B.GRADE );


▶ 결과 테이블 (MEMBER_PREMIUM)

MEMBER_CODE MEMBER_NAME GRADE
1 김자바 4
2 이디비 1
3 박파이썬 5 (UPDATE)
4 한오라클 3 (INSERT)
5 백코틀린 2 (INSERT)



반응형