[오라클] update, insert 한번에 (merge into)


두번할꺼 한번에 해주는 편한기능이다.

그렇다고 모든 insert나 update를 이렇게 할필요는 없다.
'걍 insert 하믄 되지 뭘 왜 select를 하구있어' 라는 소리를 들을수도 있다.

보통 개발진행중이거나, 배치작업같은데서 종종 필요할듯 싶다.
MERGE INTO RequestTable RT -- 이번 쿼리의 대상이 되는 테이블
    USING 
        JoinTable JT -- 조인이 필요한 테이블
    ON (RT.col1 = JT.col1..) -- 조인조건
     
    WHEN MATCHED THEN -- 조건에 합당할경우 / 데이터가 있는경우
        UPDATE SET -- updqte, set 사이에 테이블명을 명시하지 않음
            RT.col2=JT.col2
            ,RT.col3=JT.col3
            ,RT.col4=JT.col4
 
    WHEN NOT MATCHED THEN -- 조건에 안맞음 / 데이터가 없는경우
            INSERT (col1, col2, col3)
            VALUES(
                JT.col1
                , JT.col2
                , JT.col3
            );

여기서는 update, insert만 썼지만 delete도 얼마든지 가능하다.


댓글

이 블로그의 인기 게시물

[spring] log4j 설정 및 사용법

[linux] 백그라운드 작업 nohup [xxx.sh] &

[spring] 인터셉터 와 필터