Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi est-ce que j'obtiens « ERREUR 1217 (23000)... la contrainte de clé étrangère échoue » lors de la suppression de tables dans MySQL ?

Barbara Streisand
Libérer: 2024-11-05 08:35:02
original
306 Les gens l'ont consulté

Why Do I Get

MySQL : la gestion des fausses contraintes de clé étrangère échoue

Rencontre avec l'erreur « ERREUR 1217 (23000)... la contrainte de clé étrangère échoue » lors de tenter de supprimer une table MySQL, même si toutes les contraintes de clé étrangère correspondantes ont apparemment été supprimées, peut être déroutant.

Pour résoudre ce problème, envisagez la possibilité suivante :

Persistance des données due à Connexions multiples

Lors de l'utilisation d'outils de gestion de base de données comme MySQL Query Browser ou phpMyAdmin, on observe qu'une nouvelle connexion est établie pour chaque requête. Cela signifie que lorsque les tables sont supprimées individuellement, la base de données peut toujours contenir des références de clé étrangère qui sont orphelines et non prises en compte dans la connexion actuelle.

Solution : instructions de suppression consolidées

Pour remédier à cette situation, consolidez toutes les instructions drop en une seule requête. Par exemple :

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

En regroupant toutes les instructions drop, les contraintes de clé étrangère sont désactivées lors de la suppression des tables. L'instruction supplémentaire SET FOREIGN_KEY_CHECKS=1 sert de précaution supplémentaire pour réactiver les vérifications de clé étrangère une fois l'opération terminée.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!