DB/SQL 기초

Merge 문 - insert, update, delete 한번에 해결할 때

케이(kay) 2022. 8. 13. 23:32
반응형
SMALL

테이블 병합이다. 해당하는 데이터가 있으면 update(delete), 없으면 insert

merge가 없다면, select 문 → 데이터 존재 유무 체크 → if (있으면) UPDATE; → else INSERT;

 

MERGE INTO football_team T1
USING football_team_new T2
ON (T1.player = T2.player AND T1.number = T2.number)
WHEN MATCHED THEN 
            UPDATE SET T1.entry = T2.entry, T2.remark, T1.remark = ‘continue’  
-- update 된 데이터면 col(remark)에 ‘continue’ 표시
WHEN NOT MACHED THEN
            INSERT VALUES (T2.entry, T2.player, T2.number, ‘new’);
-- insert 된 데이터면 col(remark)에 ‘new’ 표시
SELECT * FROM football_team WHERE remark IS NOT NULL ORDER BY entry; 
— 다음과 같이 출력하면 된다.

 

필요시 when 구문에서 update 나 insert 구문을 생략해도 되고, delete 구문을 사용할 수도 있다.

반응형
LIST