Maison > base de données > tutoriel mysql > Pourquoi MySQL renvoie-t-il « Impossible d'ajouter ou de mettre à jour une ligne enfant : une contrainte de clé étrangère échoue » (Erreur 1452) ?

Pourquoi MySQL renvoie-t-il « Impossible d'ajouter ou de mettre à jour une ligne enfant : une contrainte de clé étrangère échoue » (Erreur 1452) ?

Susan Sarandon
Libérer: 2024-12-21 00:01:11
original
146 Les gens l'ont consulté

Why Does MySQL Throw

Problème de contrainte de clé étrangère MySQL : impossible d'ajouter ou de mettre à jour une ligne enfant

Lorsque vous essayez d'établir une contrainte de clé étrangère dans une table MySQL, vous peut rencontrer l'erreur 1452 : « Impossible d'ajouter ou de mettre à jour une ligne enfant : une contrainte de clé étrangère échoue. » Ce problème se produit lorsqu'une ligne enfant dans une table fait référence à une ligne parent qui n'existe plus dans une autre table.

Dans le scénario fourni, vous essayez d'ajouter une clé étrangère dans la table sourcecodes_tags faisant référence à la table des codes sources. Cependant, le message d'erreur suggère qu'il existe des enregistrements orphelins dans la table sourcecodes_tags qui font référence à des lignes inexistantes dans la table des codes sources.

Pour résoudre ce problème, il faut d'abord identifier les enregistrements orphelins. Vous pouvez utiliser la requête suivante pour récupérer ces enregistrements :

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

Une fois que vous avez identifié les enregistrements orphelins, vous pouvez les supprimer de la table sourcecodes_tags. Cela vous permettra d'ajouter avec succès la contrainte de clé étrangère.

Il est important de garantir l'intégrité référentielle dans les tables de votre base de données en appliquant des contraintes de clé étrangère. Ces contraintes évitent les incohérences des données et maintiennent les relations entre les tables. En traitant les enregistrements orphelins, vous pouvez résoudre l'erreur 1452 et établir des relations appropriées entre vos tables de base de données.

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