2009-05-13 2 views
0

테이블에 항목을 삽입하지만 실패하는 java 서블릿을 작성했습니다. 내 생각에 문제가 생겨서 삽입과 삭제로 인한 것일 수도 있습니다. java 서블릿은 SQL 서버에 insert 문을 실행합니다. 내 오류 로그에, 그것은 말합니다 :자바 서블릿 : 고유 색인 'XAK1timItem'이있는 객체의 키 행 중복

com.microsoft.sqlserver.jdbc.sqlserverexception: cannot insert duplicate key row in object 'dbo.timitem' with unique index 'XAK1timitem'. 

어떤 아이디어?

업데이트 : 나는 "XAK1timItem (Unique, Non-Clustered)"이라는 색인이 있다는 것을 알았습니다.이 색인은 무엇을해야할지 모르겠습니다. 이것이 도움이 되길 바랍니다.

답변

1

고유 인덱스는 인덱스에 포함 된 행의 조합에 대해 고유성을 적용합니다. 따라서 인덱스 열에 대해 삽입하려는 값과 동일한 값을 가진 행이 데이터베이스에 있으면 데이터베이스에서 오류가 발생합니다.

AK로 부분이 아마 테이블이 일반 기본 키를 가지고 있음을 의미하며, 행의 고유 한 식별을위한 AK에 의존 할 필요가없는 lternative K 도망을 나타냅니다.

일부 옵션 :

  • 인덱스가 고유하지 수 있도록 고유 인덱스에 다른 열을 추가 할 필요가없는 경우는
  • 체크하면 중복 값이 ​​수 있도록

    • 는, 인덱스를 삭제 인서트를 삽입하고 중단하려는 행과 이미 일치하는 행이긴하지만,이 작업을 원하지는 않을 것입니다.