Maison >base de données >tutoriel mysql >Erreur MySQL 1452 : comment résoudre les violations de contraintes de clé étrangère ?

Erreur MySQL 1452 : comment résoudre les violations de contraintes de clé étrangère ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-28 02:11:10559parcourir

MySQL Error 1452: How to Resolve Foreign Key Constraint Violations?

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 :

  • sourcecodes table : Contient des contraintes de clé étrangère faisant référence à plusieurs autres tables (langues, utilisateurs, catégories).
  • table sourcecodes_tags : contient une contrainte de clé étrangère faisant référence à la table des codes sources.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn