본문 바로가기

공부하기/Data Base

[Oracle 공부하기]INSERT ALL

INSERT ALL

 : 다중테이블에 같은 조건의 데이터를 입력할 경우 한개의 INSERT문으로 처리 가능


INSERT INTO EMP_HIR VALUES(EMPNO, ENAME, HIREDATE)

SELECT EMPNO, ENAME, HIREDATE

FROM EMP

WHERE DEPTNO = 20;


INSERT INTO EMP_MGR VALUES(EMPNO, ENAME, MGR)

SELECT EMPNO, ENAME, MGR

FROM EMP

WHERE DEPTNO = 20;


 => 

  INSERT ALL

  INTO EMP_HIR VALUES(EMPNO, ENAME, HIREDATE)

  INTO EMP_MGR VALUES(EMPNO, ENAME, MGR)

  SELECT EMPNO, ENAME, HIREDATE, MGR

  FROM EMP

  WHERE DEPTNO = 20;


 : WHEN절을 이용하면 다중 테이블에 다중행 입력 가능

 ex) INSERT ALL

     WHEN HIREDATE > '1982/01/01' THEN

     INTO EMP_HIR01 VALUES(EMPNO, ENAME, HIREDATE)

     WHEN SAL>=2000 THEN

     INTO EMP_SAL VALUES(EMPNO, ENAME, SAL)

     SELECT EMPNO, ENAME, HIREDATE, SAL FROM EMP;