상세 컨텐츠

본문 제목

오라클 MERGE문 간단하게 또는 복잡하게

데이터베이스

by 김일국 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);

관련글 더보기

댓글 영역