04 | 다중 테이블 INSERT
마지막으로 알아 볼 다중 테이블 INSERT 구문은 단 하나의 INSERT 문장으로 여러 개의 INSERT 문을 수행하는 효과를 낼 수 있을 뿐만 아니라 특정 조건에 맞는 데이터만 특정 테이블에 입력되게 할 수 있는 문장이다. 먼저 다중 테이블 INSERT 문의 구문을 살펴 보자.
INSERT ALL| FIRST
WHEN 조건1 THEN
INTO [스키마.]테이블명(컬럼1, 컬럼2, ...) VALUES(값1, 값2, ...)
WHEN 조건2 THEN
INTO [스키마.]테이블명(컬럼1, 컬럼2, ...) VALUES(값1, 값2, ...)
...
ELSE
INTO [스키마.]테이블명(컬럼1, 컬럼2, ...) VALUES(값1, 값2, ...)
SELECT 문;
• ALL: 디폴트 값으로 이후 WHEN 조건절을 명시했을 때 각 조건이 맞으면 INSERT를 모두 수행하라는 의미다.
• FIRST: 이후 WHEN 절 조건식에 따른 INSERT문을 수행할 때, 서브 쿼리로 반환된 로우에 대해 조건이 참인 WHEN 절을 만나면 해당 INSERT문을 수행하고 나머지에 대해서는 조건 평가를 하지 않고 끝낸다.
• WHEN 조건 THEN … ELSE: 특정 조건에 따라 INSERT를 수행할 때 해당 조건을 명시.
• SELECT 문: 다중 테이블 INSERT 구문에서는 반드시 서브 쿼리가 동반되어야 하며, 서브 쿼리의 결과를 조건에 따라 평가해 데이터를 INSERT 한다.
여기까지만 보면 아직 감이 오지 않을 것이다. 어떤 식으로 활용하고 사용하는지 각 유형별로 살펴보기로 하자.