개발 & 데이터베이스/DB

[ORACLE] MERGE INTO 문으로 INSERT와 UPDATE 동시에 사용하기

K.두부 2021. 12. 1. 18:56
반응형

MERGE INTO ···정의

값의 존재 여부에 따라서 INSERT, UPDATE, DELETE를 실행하는 쿼리문으로 자바에서 IF문과 비슷한 역할을 수행

 

MERGE INTO ··· 사용 방법

MERGE INTO [TABLE / VIEW]   -- UPDATE, INSERT 할 테이블 혹은 뷰
USING [TABLE / VIEW / DUAL] -- 비교할 대상 테이블 혹은 뷰
ON [조건]                   -- 비교 조건

WHERE MATCHED THEN          -- 조건과 일치할 경우
UPDATE SET
    .
    .
    .
    
WHEN NOT MATCHED THEN       -- 조건과 불일치할 경우
INSERT(

)VALUES (

)

 

MERGE INTO ··· 실행

SELECT * FROM FOOD

MERGE INTO FOOD
USING DUAL
ON (FOOD_NAME = '탕수육')

WHEN MATCHED THEN
UPDATE SET FOOD_ID = '250'

WHEN NOT MATCHED THEN
INSERT(
    FOOD_ID
  , PARENT_FOOD_ID
  , FOOD_NAME
) VALUES (
    250
  , 120
  , '돈까스'
)

FOOD_NAME 컬럼에 '탕수육' 이라는 데이터가 존재한다면 FOOD_ID 를 '250'으로 수정하고, 존재하지 않는다면 '돈까스' 라는 데이터를 INSERT 해라.

 

현재 FOOD 테이블에 값이 존재하므로 FOOD_NAME 컬럼에 '탕수육' 이라는 데이터를 가진 FOOD_ID 가 '250'으로 수정된 것을 확인할 수 있습니다.

 

반응형