반응형
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
'DB > SQL 기초' 카테고리의 다른 글
TCL 정리 - commit, rollback, savepoint (*auto_commit) (0) | 2022.08.14 |
---|---|
그룹함수 - rollup, cube, grouping sets + grouping (group by 절) (0) | 2022.08.14 |
데이터 모델링이란? (0) | 2022.08.13 |
데이터에 따른 성능 - row chaining, row migration 저장방식 (0) | 2022.08.13 |
정렬의 특성 - ORDER BY, NULL, 컬럼번호, 인수 등 (0) | 2022.08.10 |