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 ?

Linda Hamilton
Libérer: 2024-12-22 15:15:15
original
682 Les gens l'ont consulté

MySQL Error 1452: How Do I Resolve Foreign Key Constraint Violations?

Violation de contrainte de clé étrangère : compréhension de l'erreur 1452 dans MySQL

Erreur MySQL 1452, "Impossible d'ajouter ou de mettre à jour une ligne enfant : une clé étrangère contrainte échoue », se produit lorsque vous tentez d'insérer ou de modifier des données dans une table enfant tout en violant une relation de clé étrangère. Cette erreur indique que l'enregistrement référencé dans la table parent est manquant ou invalide.

Dans le scénario que vous avez décrit, vous essayez d'ajouter une clé étrangère à la table sourcecodes_tags, faisant référence à la table sourcescodes. Cependant, il échoue en raison d'un conflit potentiel.

Pour résoudre ce problème, vous devez d'abord identifier s'il existe des enregistrements orphelins dans la table sourcecodes_tags. Les enregistrements orphelins sont ceux qui font référence à des lignes inexistantes dans la table des codes sources.

Pour rechercher des enregistrements orphelins, 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;
Copier après la connexion

Cette requête listera les ID de code source qui le font n'existe pas dans la table parent.

Une fois que vous avez identifié les enregistrements orphelins, vous pouvez les supprimer de la table sourcecodes_tags à l'aide d'un DELETE déclaration. Après avoir supprimé les enregistrements orphelins, vous pouvez ajouter avec succès la contrainte de clé étrangère.

De plus, il est important de vous assurer que vous insérez des ID de code source valides dans la table sourcecodes_tags. Si les identifiants insérés n'existent pas dans la table des codes sources, cela entraînera l'erreur 1452.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal