본문 바로가기
DataBase/Oracle

INSERT ALL

by 글발 2023. 8. 30.
728x90
반응형

INSERT ALL

여러 건의 insert 문을 실행할 때 INSERT ALL 구문을 사용하면 한 번에 처리할 수 있다.

한 테이블에 여러 개의 로우를 입력할 수도 있지만

여러 개의 테이블에 INSERT를 수행할 수도 있다.

 

예를 들어보자.

우선 예시를 위해 테이블 두개를 만들었다.

test_tb1 테이블에 두 개의 로우를 입력을 해야 한다면 다음과 같은 두 개의 INSERT 문을 사용한다.

INSERT INTO test_tb1 VALUES(001, '김구');

INSERT INTO test_tb1 VALUES(002, '이순신');

 

하지만 INSERT ALL 구문을 사용하면 한 번에 처리할 수 있다.

다중 테이블 INSERT 구문을 사용할 때는 반드시 서브 쿼리가 동반되어야 한다.

따라서 마지막에 의미가 없는(단지 에러가 안나기 위한) SELECT 1 FROM DUAL 구문이 들어갔다.

 

참고로 이는 UNION ALL 구문으로도 할 수 있는데 예시를 보자.

쿼리를 보면 금방 이해할 수 있다.

이제 동시에 여러 개의 테이블에 INSERT를 해보자.

달라지는 점은 없고 테이블 이름만(INTO 쿼리만) 바꿔주면 된다.

물론 INSERT 하는 테이블의 레이아웃이 전부 같을 필요는 없고

당연히 INTO 절 이하의 문법은 맞아야 된다.(INSERT 하는 컬럼의 개수나 타입 등)

'DataBase > Oracle' 카테고리의 다른 글

계층형쿼리  (0) 2023.10.13
LISTAGG  (0) 2023.10.13
MERGE문  (0) 2023.09.14
SELECT 1 FROM 테이블명;  (0) 2023.08.30
오라클 통계정보  (0) 2023.08.29