위로
아래
INSERT ALL
- 사용하는 경우
- 여러 개의 테이블에 데이터를 입력
- 한 개의 테이블에 여러 데이터를 입력
- 종류
- INSERT INTO : 1개의 테이블에 1개의 행을 입력
- INSERT SELECT : 테이블2에서 검색한 컬럼의 데이터들을 테이블1의 컬럼에 삽입
- INSERT ALL INTO : 여러 테이블에 여러 행 입력
사용법
기본형
insert all
into 테이블1(컬럼1,컬럼2) values (값1, 값2)
into 테이블2(컬럼1,컬럼2) values (값1, 값2)
select * from dual;
조건형
insert all
when 조건1 then
into 테이블1 (컬럼1, 컬럼2)
when 조건2 then
into 테이블2 (컬럼1, 컬럼2)
select 컬럼1, 컬럼2
from 테이블1;
조건형2
insert all
into 테이블1 (컬럼1, 컬럼2)
into 테이블2 (컬럼1, 컬럼2)
select 컬럼1, 컬럼2
from 테이블1
where 조건1;
예시
<insert id="insertOrders" parameterType="list">
<selectKey keyProperty="o_no" resultType="int" order="BEFORE">
SELECT NVL(MAX(o_no), 0)+1 AS o_no FROM ordert
</selectKey>
<foreach collection="list" item="ovo" index="index" open="INSERT ALL " close="SELECT * FROM DUAL" separator=" ">
INTO ordert(o_no, price, amount, quantity, o_regdate, state, mem_id, p_no)
VALUES(#{o_no}, #{ovo.price}, #{ovo.price}*#{ovo.quantity}, #{ovo.quantity}, SYSDATE, 1, #{ovo.mem_id}, #{ovo.p_no})
</foreach>
</insert>