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

1452: Cannot add or update a child row: a foreign key constraint fails (ajout ou mise à jour de la ligne enfant impossible : échec de la contrainte de clé étrangère)

MySQL

Que signifie cette erreur ?

Vous insérez ou mettez à jour une ligne enfant, mais la valeur de clé parente vers laquelle elle pointe n'existe pas dans la table référencée ; la contrainte de clé étrangère la rejette.

Cause

INSERT/UPDATE référençant une clé parente inexistante, données chargées dans le mauvais ordre (enfant d'abord) ou ligne parente supprimée.

Comment la corriger

Insérez d'abord la ligne parente, puis la ligne enfant. Vérifiez que la valeur référencée existe : SELECT * FROM parent_table WHERE key_column = value. Respectez l'ordre parent-enfant lors des chargements en masse. N'utilisez SET FOREIGN_KEY_CHECKS=0 que lors d'opérations de maintenance maîtrisées et remettez-le à 1 une fois terminé.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur