Maison > base de données > tutoriel mysql > Pourquoi l'erreur « Échec de la contrainte de clé étrangère erronée » se produit-elle lors de la suppression de tables ?

Pourquoi l'erreur « Échec de la contrainte de clé étrangère erronée » se produit-elle lors de la suppression de tables ?

Linda Hamilton
Libérer: 2024-11-05 22:33:02
original
769 Les gens l'ont consulté

Why Does

"Échec de la contrainte de clé étrangère erronée" expliqué et résolu

Lorsque vous rencontrez le message d'erreur "ERREUR 1217 (23000) à la ligne 40 : Impossible supprimer ou mettre à jour une ligne parent : une contrainte de clé étrangère échoue" lors de la tentative de suppression d'une table, il est important de comprendre la cause sous-jacente. Malgré la suppression de toutes les autres tables contenant des références de clé étrangère à la table problématique, l'erreur persiste.

Dans ce scénario, le problème provient du navigateur de requêtes MySQL ou de phpMyAdmin utilisant des connexions distinctes pour chaque requête. Pour résoudre ce problème, toutes les instructions drop doivent être consolidées en une seule requête comme suit :

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE my_first_table_to_drop;
DROP TABLE my_second_table_to_drop;
SET FOREIGN_KEY_CHECKS=1;
Copier après la connexion

Ce faisant, les vérifications de clé étrangère sont temporairement désactivées, permettant la suppression réussie des tables. L'instruction finale SET FOREIGN_KEY_CHECKS=1 réactive les vérifications des clés étrangères, garantissant l'intégrité des données.

Il est important de noter qu'InnoDB ne prend pas en charge les clés étrangères entre schémas. Ainsi, le problème n'est pas causé par des références externes en dehors du schéma de base de données actuel.

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