RDBMS/Oracle & Tibero

UPDATE 또는 INSERT를 하고싶을 때 MERGE INTO 사용하기

메타H 2024. 3. 28. 15:20

MERGE INTO ...
USING ... ON ...

WHEN MATCHED THEN ...

WHEN NOT MATCHED THEN ...

 

보통 테이블에 이미 존재하는 KEY가 있으면 UPDATE하고 없으면 INSERT하고싶을때 사용한다

 

USING 구절에 참조 테이블이나 dual을 써도되고

아래와 같이 서브쿼리를 사용해도 된다

MERGE INTO 테이블 a
USING (
	SELECT 컬럼1 
	FROM 서브테이블
) b
ON ( a.컬럼1 = b.컬럼1 )
WHEN MATCHED THEN 
	UPDATE SET
		a.컬럼2 = b.컬럼2,
        ...
WHEN NOT MATCHED THEN
	INSERT (a.컬럼2, ...)
	VALUES (b.컬럼2, ...);