TIL
오라클 MERGE문
하얀잔디
2022. 12. 16. 14:53
신기방기~~
TAG를 만들다가, MERGE 라는 처음보는 SQL 문법을 보았다.
MERGE문은 조건에 따라서 데이터의 삽입, 갱신, 삭제 작업을 한번에 할 수 있게 해주는 것입니다.
해당 행이 존재하는 경우 , UPDATE or DELETE 문을 수행하고,
새로운 행인 경우, INSERT 문을 수행함.
어떻게 그러면 그 조건을 아는가?
흔치않은
WHEN NOT MATCHED THEN 과
WHEN MATCED THEN 을 쓰면 된다!
- - INTO : DATA가 UPDATE되거나 INSERT 될 테이블 또는 뷰를 지정.
- - USING : 비교할 SOURCE 테이블 또는 뷰나 서브쿼리를 지정, INTO절의 테이블과 동일하거나 다를 수 있다.
- - ON : UPDATE나 INSERT를 하게 될 조건으로, 해당 조건을 만족하는 DATA가 있으면 WHEN MATCHED 절을 실행하게 되고, 없으면 WHEN NOT MATCHED 이하를 실행하게 된다.
- - WHEN MATCHED : ON 조건절이 TRUE인 ROW에 수행 할 내용 (UPDATE, DELETE포함 될 수 있음)
- - WHEN NOT MATCHED : ON 조건절에 맞는 ROW가 없을 때 수행할 내용 (INSERT)