DBAtlas · Atlas für Datenbankbetrieb

23503: foreign_key_violation

PostgreSQL

Was bedeutet das?

Ein FOREIGN-KEY-Constraint wurde verletzt. Die von der eingefügten/aktualisierten Zeile referenzierte Elternzeile existiert nicht, oder die zu löschende Elternzeile hat noch abhängige Kindzeilen.

Ursache

Ein INSERT/UPDATE, das einen nicht existierenden Elternschlüssel referenziert, der Versuch, eine noch referenzierte Elternzeile zu löschen/zu ändern, oder Daten in falscher Reihenfolge geladen (zuerst Kind, dann Eltern).

Lösung

Füge zuerst die Elternzeile ein, dann die Kindzeile. Wird beim Löschen kaskadierendes Verhalten benötigt, definiere den Constraint mit ON DELETE CASCADE oder ON DELETE SET NULL. Lade bei Massenladungen die Daten in Eltern-Kind-Reihenfolge. Finde die referenzierenden Zeilen: SELECT * FROM child WHERE fk_column = value.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank