두번할꺼 한번에 해주는 편한기능이다.
그렇다고 모든 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도 얼마든지 가능하다.
댓글
댓글 쓰기