DBAtlas · Atlas d'exploitation des bases de données

23503: foreign_key_violation

PostgreSQL

Que signifie cette erreur ?

Une contrainte FOREIGN KEY a été violée. La ligne parente référencée par la ligne insérée/mise à jour n'existe pas, ou la ligne parente supprimée possède encore des lignes enfants dépendantes.

Cause

INSERT/UPDATE référençant une clé parente inexistante, tentative de suppression/mise à jour d'une ligne parente encore référencée, ou données chargées dans le mauvais ordre (enfant d'abord, puis parent).

Comment la corriger

Insérez d'abord la ligne parente, puis la ligne enfant. Si un comportement en cascade est nécessaire à la suppression, définissez la contrainte avec ON DELETE CASCADE ou ON DELETE SET NULL. Lors des chargements en masse, chargez les données dans l'ordre parent-enfant. Trouvez les lignes qui référencent : SELECT * FROM child WHERE fk_column = value.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur