23503: foreign_key_violation
PostgreSQLWas 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.