1452: Cannot add or update a child row: a foreign key constraint fails (Kindzeile kann nicht eingefügt/geändert werden: Foreign-Key-Constraint schlägt fehl)
MySQLWas bedeutet das?
Du fügst eine Kindzeile ein oder aktualisierst sie, aber der Elternschlüsselwert, auf den sie verweist, existiert in der referenzierten Tabelle nicht; der Foreign-Key-Constraint lehnt sie ab.
Ursache
Ein INSERT/UPDATE, das einen nicht existierenden Elternschlüssel referenziert, Daten in falscher Reihenfolge geladen (Kind zuerst) oder eine gelöschte Elternzeile.
Lösung
Füge zuerst die Elternzeile ein, dann die Kindzeile. Prüfe, ob der referenzierte Wert existiert: SELECT * FROM parent_table WHERE key_column = value. Halte bei Massenladungen die Eltern-Kind-Reihenfolge ein. Verwende SET FOREIGN_KEY_CHECKS=0 nur bei kontrollierten Wartungsarbeiten und setze es danach wieder auf 1.
Weitere Einträge zu dieser Datenbank
- 1114The table is full (die Tabelle ist voll)
- 1215Cannot add foreign key constraint (Foreign-Key-Constraint kann nicht hinzugefügt werden)
- 1451Cannot delete or update a parent row: a foreign key constraint fails (Elternzeile kann nicht gelöscht/geändert werden: Foreign-Key-Constraint schlägt fehl)
- 1366Incorrect string/integer value for column (falscher String-/Integer-Wert für Spalte)
- 1044Access denied for user to database (Zugriff des Benutzers auf die Datenbank verweigert)
- 1264Out of range value for column (Wert außerhalb des Bereichs für Spalte)
- 1052Column 'x' in field list is ambiguous (Spalte in der Feldliste mehrdeutig)