Maison >base de données >tutoriel mysql >Erreur MySQL 1452 : comment résoudre les violations de contraintes de clé étrangère ?
Violation de contrainte de clé étrangère MySQL : erreur 1452
Lorsque vous essayez d'établir une contrainte de clé étrangère entre deux tables, vous pouvez rencontrer l'erreur " Erreur Mysql 1452 - Impossible d'ajouter ou de mettre à jour une ligne enfant : une contrainte de clé étrangère échoue." Cette erreur suggère qu'il existe une incohérence entre les tables référencées et de référence.
L'examen des instructions CREATE TABLE pour les deux tables révèle ce qui suit :
L'erreur se produit spécifiquement lors de la tentative d'ajout d'une contrainte de clé étrangère à partir de sourcecodes_tags aux sourcescodes.
Pour résoudre cette erreur, il est probable que le La table sourcecodes_tags contient des valeurs pour sourcecode_id qui n'existent plus dans la table sourcescodes.
Pour identifier ces valeurs incohérentes, exécutez la requête suivante :
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
Cette requête renverra une liste de valeurs sourcecode_id à partir de sourcecodes_tags qui ne correspondent à aucune entrée valide dans les codes sources. En supprimant ces valeurs incohérentes de sourcecodes_tags, la contrainte de clé étrangère peut être établie avec succès.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!