데이터베이스 무결성 관련 질문
- 작성자 :
- 김*범
- 작성일 :
- 2015-06-18 10:38:56
- 조회수 :
- 1,094
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
2015-06-18 10:35:03,921 DEBUG [egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl] [IDGeneration Service] key_table에 대한 10 ID의 새로운 블록을 할당 LOGINLOG_ID.
2015-06-18 10:35:04,063 DEBUG [egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl] Select Query : SELECT next_id FROM IDS WHERE table_name = ?
2015-06-18 10:35:04,078 DEBUG [egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl] [IDGeneration Service] TABLE_NAME = {0}에 대한 초기 id 값을 삽입합니다.
2015-06-18 10:35:04,078 DEBUG [egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl] Insert Query : INSERT INTO IDS(table_name, next_id) values('LOGINLOG_ID', ?)
2015-06-18 10:35:08,088 DEBUG [egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper] ## username is anonymousUser
2015-06-18 10:35:12,784 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2015-06-18 10:35:12,800 INFO [org.springframework.jdbc.support.SQLErrorCodesFactory] SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [INSERT INTO IDS(table_name, next_id) values('LOGINLOG_ID', ?)]; ORA-00001: 무결성 제약 조건(KWB.IDS_PK)에 위배됩니다
; nested exception is java.sql.SQLException: ORA-00001: 무결성 제약 조건(KWB.IDS_PK)에 위배됩니다
다음과같은 에러가 뜨는데요.. 로직을 제대로 파악을 못한 상태긴한데 원인에 대해 댓글좀 부탁드릴게요 시간이 없어서요
2015-06-18 10:35:04,063 DEBUG [egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl] Select Query : SELECT next_id FROM IDS WHERE table_name = ?
2015-06-18 10:35:04,078 DEBUG [egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl] [IDGeneration Service] TABLE_NAME = {0}에 대한 초기 id 값을 삽입합니다.
2015-06-18 10:35:04,078 DEBUG [egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl] Insert Query : INSERT INTO IDS(table_name, next_id) values('LOGINLOG_ID', ?)
2015-06-18 10:35:08,088 DEBUG [egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper] ## username is anonymousUser
2015-06-18 10:35:12,784 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2015-06-18 10:35:12,800 INFO [org.springframework.jdbc.support.SQLErrorCodesFactory] SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [INSERT INTO IDS(table_name, next_id) values('LOGINLOG_ID', ?)]; ORA-00001: 무결성 제약 조건(KWB.IDS_PK)에 위배됩니다
; nested exception is java.sql.SQLException: ORA-00001: 무결성 제약 조건(KWB.IDS_PK)에 위배됩니다
다음과같은 에러가 뜨는데요.. 로직을 제대로 파악을 못한 상태긴한데 원인에 대해 댓글좀 부탁드릴게요 시간이 없어서요
A
김원범님 안녕하세요.
표준프레임워크센터 입니다.
무결성 제약 조건관련 오류는 보통 데이터 처리와 관련되어 발생합니다.
IDS 테이블 데이터에 자동증가값으로 KWB.IDS_PK 가 등록되어 있는 상태에서
관련 테이블(TABLE_A)에 100개의 데이터가 100번까지 순차적으로 index 정보를 등록하고 있을 때,
IDS 테이블의 관련 필드에는 70번으로 등록되어 있는 경우
위 상태에서 다음 자료를 입력할 때 index 값에 따라 71번이 등록할 차례 이지만, 이미 관련 테이블(TABLE_A)에는
100번까지 데이터가 존재하기 때문에 71번 데이터 등록시 이미 71번 자료가 존재해서 발생하는 오류가 무결성 제약 조건 오류입니다.
위와 같이 일반적으로는 데이터에 대한 오류에 의해 발생하지만,
간혹 프로세스를 잘못 구현하여 발생하는 경우도 있으니
참고바랍니다.
감사합니다.
표준프레임워크센터 입니다.
무결성 제약 조건관련 오류는 보통 데이터 처리와 관련되어 발생합니다.
IDS 테이블 데이터에 자동증가값으로 KWB.IDS_PK 가 등록되어 있는 상태에서
관련 테이블(TABLE_A)에 100개의 데이터가 100번까지 순차적으로 index 정보를 등록하고 있을 때,
IDS 테이블의 관련 필드에는 70번으로 등록되어 있는 경우
위 상태에서 다음 자료를 입력할 때 index 값에 따라 71번이 등록할 차례 이지만, 이미 관련 테이블(TABLE_A)에는
100번까지 데이터가 존재하기 때문에 71번 데이터 등록시 이미 71번 자료가 존재해서 발생하는 오류가 무결성 제약 조건 오류입니다.
위와 같이 일반적으로는 데이터에 대한 오류에 의해 발생하지만,
간혹 프로세스를 잘못 구현하여 발생하는 경우도 있으니
참고바랍니다.
감사합니다.