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)
MySQLQue 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é.
Autres entrées pour ce moteur
- 1114The table is full (la table est pleine)
- 1215Cannot add foreign key constraint (impossible d'ajouter la contrainte de clé étrangère)
- 1451Cannot delete or update a parent row: a foreign key constraint fails (suppression ou mise à jour de la ligne parente impossible : échec de la contrainte de clé étrangère)
- 1366Incorrect string/integer value for column (valeur de chaîne/entière incorrecte pour la colonne)
- 1044Access denied for user to database (accès refusé à la base de données pour l'utilisateur)
- 1264Out of range value for column (valeur hors limites pour la colonne)
- 1052Column 'x' in field list is ambiguous (colonne ambiguë dans la liste des champs)