8
votes

Erreur MySQL lors de la chute d'index (errno 150)

J'ai un problème avec l'index de clé étrangère déposé, j'ai toujours la même erreur xxx

quelle sortie xxx

the < Code> id_user sur l'autre table est simple d'index de clé primaire.

J'utilise la version MySQL 5.0.85


2 commentaires

Essayez de laisser tomber toutes les clés étrangères de la table en premier.


En fait, je n'ai pas de FK à la table


4 Réponses :


2
votes

Selon Lien , l'erreur concerne la définition du champ de clé primaire. L'erreur ne concerne pas l'indice de clé étrangère.

Vérifiez la clé principale de la table pour vous assurer qu'il ne dispose pas du mot clé non signé tandis que le comments.id_user clé étrangère avait le mot clé non signé. Ce mot clé causait le problème - type de champ incompatible.

Pour corriger, ajoutez le mot-clé non signé à la définition principale de la clé pour le Commentaires Tableau. Ou supprimer le mot-clé non signé


0 commentaires

13
votes

Il y a d'autres causes aussi. Par exemple, j'ai eu un index unique impliquant deux colonnes de clé étrangère distinctes. Je devais laisser tomber les clés étrangères en question avant que je puisse laisser tomber l'index unique. (Et évidemment, vous pouvez ajouter les clés étrangères après.)


2 commentaires

Merci, c'était le problème dans mon cas.


Exactement, laisser tomber l'index unique a causé ma clé étrangère pour renvoyer un champ "non unique" qui n'est pas possible



6
votes

InnoDB: Cela pourrait être aussi simple que d'éliminer la relation avant de supprimer l'index.


1 commentaires

La relation était, pour mon cas, tout verrouillant. Ainsi, supprimer les relations, enlevant ensuite l'indice, en créant ensuite un nouvel index, puis rétablir les relations



2
votes

L'index concerne une clé étrangère sur la table "utilisateur", donc En premier, essayez cette commande: xxx

Recherchez le nom de la contrainte correspondant à l'index sur la clé étrangère,

et après cela, essayez la commande: xxx

AVERTISSEMENT: Si vous essayez de déposer la clé étrangère avec le nom de la clé étrangère, vous aurez une erreur à!


1 commentaires

Ce fut une bonne solution pour moi, semble être que la clé étrangère ne peut pas être supprimée avec la phrase Drop Index.