MERGE INTO 쿼리를 이용하면 Update나 Insert를 하기 위해 해당 데이타가 존재하는지 확인하기 위해 따로 Select를 하지 않아도 됩니다.
데이타가 존재하는지 알아서 판단해서 Update이나 Insert를 실행하기 때문이죠.
저도 그 편리함 때문에 종종 MERGE INTO를 사용합니다.
MERGE INTO 테이블명
USING DUAL
ON ( 조인조건 )
WHEN MATCHED
THEN
UPDATE 문
WHEN NOT MATCHED
THEN
INSERT 문
USING DUAL
ON ( 조인조건 )
WHEN MATCHED
THEN
UPDATE 문
WHEN NOT MATCHED
THEN
INSERT 문
쿼리는 위와 같이 구성이 됩니다.
조인조건에 해당하는 데이타가 있는지 확인해서 Update 또는 Insert를 실행하게 됩니다.
아래 예제를 보면 어떻게 사용하는지 명확하게 알 수 있습니다.
MERGE INTO TB_USER USING DUAL ON (USER_ID = 'zzznara') WHEN MATCHED THEN UPDATE SET UPDATE_USER = 'admin', UPDATE_DATE = SYSDATE, DEPT_CODE = 'D20', USER_ID = 'zzznara2' WHEN NOT MATCHED THEN INSERT ( ID, CREATE_USER, CREATE_DATE, DEPT_CODE, USER_ID ) VALUES ( 'MX20394203957K0303A', 'admin', SYSDATE, 'D20', 'zzznara2' )
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
[오라클/쿼리문] Oracle에서 사용자가 생성한 모든 Table, View를 삭제하는 쿼리 만들기 (2) | 2015.06.04 |
---|---|
[오라클/쿼리문] Oracle에서 세자리 콤마 찍기 (0) | 2015.03.25 |
[쿼리문] 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기 (0) | 2014.11.01 |
[쿼리문/오라클] Oracle에서 중복 조인을 피하기 위한 Update 방법 (MERGE 사용) (0) | 2011.04.01 |
단일행을 다중 row로 분리, 다중 row 결과를 단일행으로 연결하는 방법 (0) | 2011.03.14 |
댓글