매일 매일 미라클 코딩

[SQL/ORACLE] MERGE INTO 절 사용하기 본문

데이터베이스/SQL

[SQL/ORACLE] MERGE INTO 절 사용하기

뚜벅-뚜벅 2022. 7. 12. 17:49

MERGE INTO 절은

대상테이블에 기준테이블의 특정 키에 해당하는 데이터가

있으면 UPDATE, 없으면 INSERT 할 수 있는 구문

→ SEARCH , INSERT, UPDATE 를 하나로 묶은 기능

 

사용예

MERGE INTO target_table TT --대상테이블
    USING ( -- 기준테이블
        SELECT col1, col2, col3
        FROM source_table
    ) ST
    ON ( -- 대상 테이블에서 기준테이블과 비교할 키
     TT.col1 = ST.col1 
    )
    --대상테이블에 내가 가진 키가 있을때 UPDATE
    WHEN MATCHED THEN (
        UPDATE SET TT.col2 = ST.col2
    )
    -- 대상테이블에 내가 가진 키 없을 때 데이터 추가 INSERT
    WHEN NOT MATCHED THEN (
        INSERT (TT.col1, TT.col2, TT.col3)
        VALUES (ST.col1, ST.col2, ST.col3)
    );