Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 새로운 방
- kafka connect #debizium #transform
- 1108
- 토마토(고)
- 큐
- sql #오라클 #oracle #sequence #foreach #insert #mybatis
- 알고리즘
- 최단거리
- Floyd
- 태그를 입력해 주세요.
- Floyd 알고리즘
- 김씨만행복한세상
- 오류교정
- hexagonal architecture #layer architecture #아키텍쳐 #헥사고날
- kubectl
- kafka #consumer #autoStartup
- 새로운방
- JAVA #필수값
- 페이지 전환
- CKAD
- maven #메이븐 #빌드 #build #lifecycle
- 페이지전환
- kubernets
- 1037
- 암스트롱 수
- 1045
- 2613
- 정올
- kafka #ackmode #manual #acknowledge
- 코드그라운드
Archives
- Today
- Total
별집사의 IT세상
[SQL] oracle mybatis list데이터 insert 할 때 sequence 처리 본문
반응형
<insert id = "아이디" parameterType="java.util.HashMap">
<foreach collection="pList" item="item" open="INSERT ALL" close="SELECT * FROM DUAL" separator=" ">
INTO 테이블
(COL1,
COL2,
COL3)
VALUES
(#{item.col1},
#{item.col2},
#{item.col3})
</foreach>
</insert>
이렇게 할 시 문제점은 sequence를 사용할때, seq_테이블.nextval를 이용하면 dup오류가 난다는 것이다.
(한번에 insert를 하게 되니 nextval이 같은 값으로 입력되는 것)
<insert id = "아이디" parameterType="java.util.HashMap">
INSERT INTO 테이블
(COL1,
COL2,
COL3)
SELECT seq_테이블.nextval, A.* FROM (
<foreach collection="pList" item="item" separator="UNION ALL">
SELECT #{item.col2} as COL2,
#{item.col3} as COL3
FROM DUAL
</foreach>
) A
</insert>
이를 해결하는 방법으로 리스트를 dual을 이용해 동적테이블을 생성하여 거기에 sequence를 같이 select 하면 sequence 값이 차례대로 붙으며 잘 insert 된다.
반응형
Comments