Impossible de supprimer une table mysql
J'obtiens une erreur bizarre. J'ai une table animals
, que je suis en train de tomber. Je ne peux pas supprimer la table à cause d'une contrainte de clé étrangère échoue. Je sais que je dois supprimer les clés étrangères avant que je baisse la table. Le problème est que ce tableau n'a pas de clés étrangères. J'ai déjà abandonné. Contrairement à d'reflète qu'ils ont été abandonnés. Mais je peux encore les trouver dans les informations de schéma. C'est comme si je baisse la clé de la moitié de la voie ou de quelque chose.
Comment puis-je laisser tomber ce tableau sans abandon de la base de données? J'ai besoin de recomposer ce tableau et j'ai juste envie de laisser tomber et de le recréer.
EDIT:
Voici le message d'erreur de SQL:
Cannot delete or update a parent row: a foreign key constraint fails
Faire d'autres tables ont FK références à la
animals
table? C'est pourquoi vous ne pouvez pas le laisser tomber.OriginalL'auteur wesleywmd | 2014-02-03
Vous devez vous connecter pour publier un commentaire.
Il n'a pas d'importance si votre table
animals
a les clés étrangères ou non. Vous serait en mesure de déposer le tableau de toute façon si il avait les clés étrangères.Ce qui compte c'est qu'il y a autres tables avec des clés étrangères référencement
animals
.Voici comment vous pouvez vérifier:
Re votre commentaire:
Je n'ai jamais entendu parler d'un cas où les clés étrangères étaient invisibles, mais encore la prévention de la table d'être supprimé. Mais je suppose que c'est possible.
Vous pouvez déposer votre table si vous le faites de cette façon:
Cependant, je ne peux pas prévoir ce qui peut aller mal si l'espace de stockage InnoDB est dans un drôle d'état déjà.
En fin de compte, ce que vous avez à faire pour nettoyer cette place est pour vider tous vos tables InnoDB en utilisant mysqldump, puis arrêtez le démon MySQL, retirez le InnoDB espace de stockage de fichiers, puis redémarrer et réimporter vos sous-évaluées de données. Qui permettra d'éliminer toute possibilité de tablespace la corruption.
Doit avoir été une corruption de certains où les. Je sous-évaluées, à l'arrêt, redémarrage , et importé comme vous l'avez décrit, et je suis maintenant en mesure de supprimer la table. je ne suis pas étranger à mysql donc je comprends comment il est supposé que le travail, mais cela m'a jeté à travers une boucle. Je vous remercie.
OriginalL'auteur Bill Karwin