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
반응형