DBAtlas · Atlas für Datenbankbetrieb

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)

MySQL

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank