데이터베이스
오라클 MERGE문 간단하게 또는 복잡하게
김일국
2011. 3. 29. 18:49
조금 간단하게...
MERGE INTO 테이블명
USING DUAL
on (조건절 일반 WHERE문과 동일)
WHEN MATCHED THEN
UPDATE SET 업데이트할 필드 = 값
WHEN NOT MATCHED THEN
INSERT 입력할 필드 VALUES ( 값...)
조금 복잡하게...
MERGE INTO 입력,수정할테이블 D
USING (조회할 테이블 (inline view가능) S
on (조건확인)
WHEN MATCHED THEN UPDATE SET 업데이트할 필드
WHEN NOT MATCHED THEN INSERT 입력할 필드
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);
USING (조회할 테이블 (inline view가능) S
on (조건확인)
WHEN MATCHED THEN UPDATE SET 업데이트할 필드
WHEN NOT MATCHED THEN INSERT 입력할 필드
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);