개요
Tibero에서 Unconditional INSERT ALL 구문을 사용하여 하나의 쿼리로 여러 테이블에 데이터를 동시에 삽입하는 예제를 안내합니다.
Unconditional INSERT ALL
Unconditional INSERT ALL 은 하나의 INSERT 문으로 여러 개의 테이블에 데이터를 입력할 수 있습니다.
여기서 INTO 절과 VALUES 절에 기술한 컬럼의 개수와 데이터 타입은 동일해야 합니다.
-- Unconditional INSERT ALL Syntax
INSERT ALL
INTO tab1 VALUES(col1, col2, col3)
INTO tab2 VALUES(col1, col4, col5)
SELECT col1, col2, col3, col4, col5 FROM tab
SQL
복사
방법
아래 예제는 emp 테이블의 데이터를 emp_ename 테이블과 emp_deptno 테이블에 INSERT ALL 을 사용하여 동시에 INSERT 하는 예제입니다.
1. 실습 환경
-- tibero 계정에서 emp 테이블을 이용하여 실습하였습니다.
tbsql tibero/tmax
SQL
복사
2. 테스트용 테이블 생성
-- 테스트용 테이블 emp_ename 과 emp_deptno 를 생성합니다.
-- empno, ename, sal 컬럼을 가지는 emp_ename 테이블 생성
CREATE TABLE emp_ename
AS
SELECT empno, ename, sal
FROM emp
WHERE 1=2;
-- empno, deptno, job 컬럼을 가지는 emp_deptno 테이블 생성
CREATE TABLE emp_deptno
AS
SELECT empno, deptno, job
FROM emp
WHERE 1=2;
SQL
복사
3. 테이블 생성 확인
-- 테이블이 정상적으로 생성되었는지 확인해 봅니다.
SELECT * FROM emp_ename;
SELECT * FROM emp_deptno;
SQL
복사
4. INSERT ALL 수행
--INSERT ALL 을 이용하여 emp_ename, emp_deptno 테이블에 INSERT 를 해봅니다.
INSERT ALL
INTO emp_ename VALUES (empno, ename, sal)
INTO emp_deptno (empno, deptno, job) VALUES (empno, deptno, job)
SELECT empno, ename, sal, deptno, job
FROM emp
WHERE sal >= 2900;
SQL
복사
5. 결과 확인
-- 데이터가 정상적으로 삽입되었는지 확인해 봅니다.
-- sal >= 2900 조건을 만족하는 4 건이 emp_ename, emp_deptno 테이블에
-- INSERT 된 것을 확인 할 수 있다.
SQL> SELECT * FROM emp_ename;
EMPNO ENAME SAL
------- ----------- -----
7566 JONES 2975
7788 SCOTT 3000
7839 KING 5000
7902 FORD 3000
4 rows selected.
SQL> SELECT * FROM emp_deptno;
EMPNO DEPTNO JOB
------- ------- ---------------
7566 20 MANAGER
7788 20 ANALYST
7839 10 PRESIDENT
7902 20 ANALYST
4 rows selected.
SQL
복사