2009-05-13 2 views
0

Ich habe dieses Java-Servlet geschrieben, das Elemente in eine Tabelle einfügt, aber es schlägt fehl. Ich denke, es könnte an meinem Einfügen und Löschen liegen, was mich in Schwierigkeiten gebracht hat. Das Java-Servlet führt eine Insert-Anweisung auf dem SQL-Server aus. In meinem Fehlerprotokoll heißt es:Java-Servlets: doppelte Schlüsselzeile im Objekt mit eindeutigem Index 'XAK1timItem'

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

irgendwelche Ideen?

UPDATE: Ich habe festgestellt, dass es einen Index namens "XAK1timItem (Unique, Non-Clustered)" gibt, mit dem ich nicht wirklich sicher bin, was ich tun soll .. hoffe, das hilft der Frage.

Antwort

1

Der eindeutige Index erzwingt die Eindeutigkeit für die Kombination der Zeilen, die im Index enthalten sind. Wenn Sie also eine Zeile in der Datenbank haben, die für die indizierte Spalte Werte aufweist, die denen entsprechen, die Sie einfügen möchten, erhalten Sie einen Fehler von der Datenbank zurück.

Die AK Teil zeigt, dass dies ein a lternative k ey was wahrscheinlich bedeutet, dass die Tabelle einen regulären Primärschlüssel hat, und muß nicht zur eindeutigen Identifizierung einer Reihe auf der AK verlassen.

Einige Optionen:

  • den Index löschen, wenn nicht
  • fügen Sie eine weitere Spalte mit dem eindeutigen Index
  • der Index dann nicht eindeutig erforderlich, so dass es doppelte Werte, wenn
  • Prüfung ermöglicht es ist bereits eine Zeile, die mit der Sie einfügen und abbrechen die einfügen, aber ich denke, Sie wollen dies nicht tun
Verwandte Themen