1. MERGE INTO
= 조건을 비교하여 IF NOT이면 INSERT / IF IS이면 UPDATE를 실행시킨다
문법 : MERGE INTO table_name alias USING (table | view | subquery) alias -- 하나의 테이블만 이용한다면 DUAL 활용 ON (join condition) -- WHERE절에 조건 쓰듯이 WHEN MATCHED THEN -- on 이하의 조건에 해당하는 데이터가 있는 경우 (조건식) UPDATE SET col1 = val1[, ...] -- UPDATE 실행 WHEN NOT MATCHED THEN -- on 이하의 조건에 해당하는 데이터가 없는 경우 INSERT (column lists) VALUES (values); -- INSERT 실행
EX) MERGE INTO ex3_3 d
USING (SELECT employee_id, salary, manager_id
FROM employees
WHERE manager_id = 146) b
on (d.employee_id = b.employee_id)
WHEN MATCHED THEN
UPDATE SET d.bonus_amt = d.bonus_amt + b.salary * 0.01
DELETE WHERE (B.employee_id = 161)
WHEN NOT MATCHED THEN
INSERT (d.employee_id, d.bonus_amt) VALUES (b.employee_id, b.salary *.001)
WHERE (b.salary < 8000);
* USING ON에서 중복체크를 해준다
'DB 이야기' 카테고리의 다른 글
디비 이야기 23. 트랜젝션 (0) | 2020.03.11 |
---|---|
디비 이야기 22. 데이터 무결성 (0) | 2020.03.11 |
디비 이야기 20. 시노님 (0) | 2020.03.10 |
디비 이야기 19. 인덱스 (1) | 2020.03.10 |
디비 이야기 18. 뷰 (0) | 2020.03.08 |