z

BLOG ARTICLE Merge | 1 ARTICLE FOUND

  1. 2009.05.11 Oracle DML MERGE

Oracle DML MERGE

개발/DB 2009. 5. 11. 18:12
MERGE INTO 업데이트_인서트_대상_테이블 a
        USING (조인조건등의 조건 테이블)  b
        ON (a.id = b.id)
  WHEN MATCHED THEN  -- On조건이 맞을경우 실행
        UPDATE SET a.age = b.age
  WHEN NOT MATCHED THEN -- 조건이 안맞을 경우 실행
       INSERT VALUES (b.id, 'new name')

INTO - 데이터가 업데이트/삽입될 테이블
USING - 대상 데이터와 비교될 테이블/뷰
ON : INTO 테이블과 USING테이블의 비교 조건
WHEN MATCHED : ON 조건에 맞는 ROW가 있을경우 수행
WHEN NOT MATCHED : ON 조건에 맞는 ROW가 없을 때 수행

* INSERT VALUES 절에서 들어갈 수 있는 데이터(KEY)는 USING테이블에 있는 키여야하며, 키가 아닌 데이터는 들어 상수/변수가 들어갈 수 있음.

* 없으면 INSERT 있으면 UPDATE할 경우 유용.
AND