C. Oracle

MERGE INTO

sfeg 2017. 7. 2. 22:56

MERGE INTO : 조건이 맞으면 데이터를 UPDATE 하고 틀리면 INSERT 하는 쿼리

 
MERGE Statement

MERGE
INTO
Insert 나 update 할 타겟 테이블
USING
 타켓 테이블에 들어갈 소스 데이터 
ON
인서트 할 것인지 업데이트 할것인지를 결정하는 조건 즉
(조건이 맞으면 업데이트문 실행 조건이 맞지 않으면 인서트 문을 실행)
WHEN MATCHED THEN  
조건이 맞았을 때 쿼리문
WHEN NOT MATCHED THEN 
조건이 맞지 않았을 때 쿼리문


오라클 도큐먼트에 있는 예문)

MERGE INTO bonuses D
   USING (SELECT employee_id, salary, department_id FROM employees
   WHERE department_id = 80) S
   ON (D.employee_id = S.employee_id)
   WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01
   WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus)
   VALUES (S.employee_id, S.salary*0.1);