2012-11-03
DB] DB2에서 merge into 사용
merge 문장의 문법 :
merge into tableA a
using (
select * from tableB
) b
on ( a.aaa = b.bbb --// 조회 조건.
)
when matched then
update 문장. <== tableA에 업데이트할 항목 나열
when not matched then
insert 문장. <== tableA에 insert 할 항목 나열.
else ignore;
설명 :
merge into 문장은 insert / update 작업을 한번에 할 수 있는 장점이 있는 sql 구문이다.
그러나, 사용상 주의점은 b 로 묶인 select 문장의 조회 결과가 없는 경우, when 조건절에 걸리지 않는 상황이 발생하는걸 경험했다.
현재까지의 결론.
1. merge into 는 tableA 에 대해 insert / update 작업을 한번에 수행한다.
단, a.aaa = b.bbb 가 일치하는 항목에 대해.
2. merge into 는 "select * from tableB" 에서 조회 결과가 없으면 when ... 을 무시한다.
결과적으로 else ignore 가 실행되는 듯 하다.
피드 구독하기:
글 (Atom)