DB2-duplicate-key-Fehler beim einfügen, ABER die Arbeit nach select count(*)

Habe ich eine - für mich unbekannte - Problem und ich weiß nicht, was die Logik/Ursache dahinter. Wenn ich versuche, einfügen eines Datensatzes in eine Tabelle bekomme ich ein DB2-Fehler sagen:

[SQL0803] Duplicate key value specified: A unique index or unique constraint *N in *N
exists over one or more columns of table TABLEXXX in SCHEMAYYY. The operation cannot 
be performed because one or more values would have produced a duplicate key in 
the unique index or constraint.

Das ist eine ganz klare Nachricht an mich. Aber eigentlich würde es keine doppelten Schlüssel, wenn ich eingefügt, mit meinem neuen Album zu sehen, was Datensätze sind bereits dort. Wenn ich eine SELECT COUNT(*) from SCHEMAYYY.TABLEXXX und dann versuchen einzufügen das aufnehmen funktioniert auch tadellos.

Wie kann es sein, dass bei der Durchführung der SELECT COUNT(*) ich kann plötzlich einfügen der Datensätze? Gibt es irgendeine Art von index zugeordnet, mit denen Probleme geben könnte, weil es ist out of sync? Ich wusste nicht, design des Datenmodells, so dass ich nicht haben Tiefe Kenntnisse des system noch.

Des ursprünglichen DB2-SQL ist:

--  Generate SQL 
--  Version:                    V6R1M0 080215 
--  Generated on:               19/12/12 10:28:39 
--  Relational Database:        S656C89D 
--  Standards Option:           DB2 for i 
CREATE TABLE TZVDB.PRODUCTCOSTS ( 
    ID INTEGER GENERATED BY DEFAULT AS IDENTITY ( 
START WITH 1 INCREMENT BY 1 
MINVALUE 1 MAXVALUE 2147483647 
NO CYCLE NO ORDER 
CACHE 20 ) 

PRODUCT_ID INTEGER DEFAULT NULL , 
STARTPRICE DECIMAL(7, 2) DEFAULT NULL , 
FROMDATE TIMESTAMP DEFAULT NULL , 
TILLDATE TIMESTAMP DEFAULT NULL , 
CONSTRAINT TZVDB.PRODUCTCOSTS_PK PRIMARY KEY( ID ) ) ; 

ALTER TABLE TZVDB.PRODUCTCOSTS 
ADD CONSTRAINT TZVDB.PRODCSTS_PRDCT_FK 
FOREIGN KEY( PRODUCT_ID ) 
REFERENCES TZVDB.PRODUCT ( ID ) 
ON DELETE RESTRICT 
ON UPDATE NO ACTION;
Können Sie uns zeigen die definition der Tabelle der TABLEXXX? Das sollte zeigen das index/unique-Einschränkungen, die Sie haben. Außerdem können Sie die insert-Anweisung?
Wahrscheinlich etwas seltsam in Ihren Definitionen, aber ja, es ist möglich, dass Sie eine hohe Stufe der Optimierung, die mit Ihren Statistiken für die Tabelle out-of-date. Obwohl ich dachte, dass in der Regel unique-Einschränkungen wurden nur erzwungen nachdem die INSERT wurde versucht,...
Hinzugefügt wurde die generierte SQL von der Tabelle in das original-posting.
Hast du eine Lösung finden? Ist das noch passiert?

InformationsquelleAutor tjeerdnet | 2012-12-14

Schreibe einen Kommentar