Index와 제약조건이 연관이 있나요? 0 1 5,108

by 쌈장묵자 인덱스 제약조건 [2015.12.21 18:53:57]


update를 하는데 에러로

Error updating databae. Cause:java.sql.SQLIntegerityConstraintViolationException :ORA-00001: 무결성 제약 조건

(OCP.IDX_OCP_VACCT_UK)에 위배됩니다 라고 나오는데 인덱스와 제약조건의 연관관계는 먼가요

by 마농 [2015.12.21 19:28:55]

유일키에 대해 중복값이 입력될 때 발생하는 에러입니다.
유일키 관련 제약조건은 PK, UK 입니다.
이 유일키 제약조건은 중복값을 체크하기 위해서 인덱스를 필요로 합니다.
인덱스가 없다면 데이터가 입력될 때마다 테이블 풀스캔으로 제약조건을 체크하겠죠.
이런 엄청난 비효율을 제거하기 위해 인덱스를 필수사항으로 두고 있습니다.


아마도 에러메시지에 나온 명칭 때문에 착각하신 듯 합니다.
이 명칭은 인덱스명이 아니라 제약조건명입니다.
물론 질문자께서 접한 상황은 이 두가지 명칭이 동일한 경우일 것입니다.


대부분의 경우 이 두가지 명칭을 동일하게 사용합니다.
제약조건 만들 때 인덱스가 없는 상대로 만들면? 인덱스가 자동으로 생성되는데.
이 때, 제약조건명과 동일하게 인덱스 명칭이 만들어집니다.


인덱스명칭과 제약조건 명칭이 다른 경우도 있습니다.
인덱스를 미리 만들어 놓은 상태에서 제약조건을 만들 때 입니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입