오라클 MERGE INTO

오라클 MERGE INTO를 이용해서 테이블에 데이터가 존재하면 UPDATE, 존재하지 않으면 INSERT를 실행하는 예제이다. 먼저 테스트용 BBS테이블을 생성한다.

CREATE TABLE BBS (
    ID VARCHAR2(10)     NOT NULL,
    NAME VARCHAR2(20)   NOT NULL,
    AGE NUMBER
);

아래의 9번째 라인에서와 같이 ID(키값)를 비교하여 테이블에 값이 존재하면 UPDATE하고 존재하지 않으면 INSERT한다.

MERGE INTO BBS B
USING (
    SELECT 'A1' AS ID
         , '수지2' AS NAME
         , 25 AS AGE
      FROM DUAL
) V
ON ( 
    V.ID = B.ID
)
WHEN MATCHED THEN
UPDATE SET
    B.NAME = V.NAME
  , B.AGE = V.AGE
WHEN NOT MATCHED THEN
INSERT (
    B.ID
  , B.NAME
  , B.AGE
)
VALUES (
    V.ID
  , V.NAME
  , V.AGE
);