반응형
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) |
반응형
'개발 > 데이터베이스' 카테고리의 다른 글
[ORACLE] DB LINK 확인 쿼리 (0) | 2021.10.19 |
---|---|
[ORACLE] 계층 쿼리 (START WITH CONNECT BY) (0) | 2021.10.18 |
[ORACLE] FUNCTION(함수) 만들기 및 사용하기 (0) | 2021.10.16 |
[ORACLE] INSERT, DELETE, UPDATE (0) | 2021.10.15 |
[ORACLE] TO_CHAR, TO_DATE, TO_NUMBER (0) | 2021.10.14 |