DB
[ERROR] insert all 쿼리 중 sequence 호출 시, 무결성 제약 조건 위배
girin_dev
2022. 2. 4. 16:04
728x90
반응형
# 다수 사용자에게 문자를 보내야 하는 상황에서 에러 발생.
-- > insert all 처리 ( DB ) --> 특정 테이블을 감지하는 프로그램이 대상 문자를 전송하는 것.
## error : : 테스트상황에서,
## 특정 테이블에 키값이 반복되는 에러로 인해 insert all 처리가 안됨.
* insert all의 values 에 시퀀스를 바로 호출 할 경우, 하나의 시퀀스가 반복됨.
😒 DB 함수 구현및 함수 호출 방식으로 처리.
## mybatis query
<insert id="insertAllLongMessageService" parameterType="java.util.List">
<foreach item="item" index="index" collection="list" open="INSERT ALL " separator=" " close = "SELECT * FROM DUAL">
INTO MMS_MSG
(
MSGKEY
, SUBJECT
, PHONE
, CALLBACK
, STATUS
, REQDATE
, MSG
, TYPE
)
VALUES
(
<!-- (MMS_MSG_SEQ.NEXTVAL) -->
GET_MMS_MSG_SEQ()
,'MMS'
, #{item.recv_num}
, #{item.send_num}
, '0'
, SYSDATE
, #{item.mesg, jdbcType=VARCHAR}
, '0'
)
</foreach>
</insert>
테이블에 msg_seq는 키 값이므로 중복 될 수 없는 상황이다.
320x100
반응형