SQLSTATE[23000]: Integrity constraint violation

DarthSidious

Benutzer
Beiträge
14
Hallo, ich bekomme beim INSERT von einem Datensatz folgende Fahlermeldung:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '17' for key firma.

Hier ist es so, dass ich einen Datensatz Rechnung eintrage, bei der die jeweils zugehörige Firma eigetragen werden soll (Fremdschlüssel in Rechnung). Die Kardinalität von Rechnung zu Firma ist n:1.

Ich habe gegogelt, da wurde ich darauf hingewiesen, dass der Fremdschlüssel 'firma'
in rechnung nicht Unique sein darf, was er auch nicht ist!

Die integrity contraints 'rechnunge.firma' (firma.ID) sind ON DELETE: RESTERICT und ON UPDATE: CASCADE.

Wo kann der Fehler liegen?
Vielen Dank!
 
Werbung:
Hallo, ich bekomme beim INSERT von einem Datensatz folgende Fahlermeldung:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '17' for key firma.

Hier ist es so, dass ich einen Datensatz Rechnung eintrage, bei der die jeweils zugehörige Firma eigetragen werden soll (Fremdschlüssel in Rechnung). Die Kardinalität von Rechnung zu Firma ist n:1.

Wo kann der Fehler liegen?
Vielen Dank!

Da Du uns das den Fehler auslösende SQL nicht zeigst kann man hier nur Vermutungen anstellen. Vermutlich versuchst Du, in eine Tabelle mit Primary Key einen Wert in diesen einzufügen, der schon existiert.
 
Hallo,
ja, also alles mit PDO

Die Query: "INSERT INTO rechnung(rnummer,rdatum,erfuelldatum1,erfuelldatum2,mwst,firma) VALUES rnummer,:rdatum,:erfuelldatum1,:erfuelldatum2,:mwst,:firma)"

dann Wertezuweisung über PDOStatement::execute und einemassoziativen Array,
letzter Wert: ':firma' => $this->data['firma']


Eventuell habe ich hier einen Denkfehler??
:firma ist der Fremdschlüssel (ID von firma) und kann ja mehr als einmal vorkommen, eine Firma kann je mehrere Rechnungen haben!!
Danke!
 
Hallo , ja der Fremdschlüssel war auf UNIQUE gesetzt. Aber das mit phpMyAdmin 4.1.6 herauszubekommen ist gar nicht so einfach. Eingenlich sollten das tool einem ja das Leben leichter machen!
 
Werbung:
Zurück
Oben