38 votes

Aide : ERREUR 1025 (HY000) : Erreur lors du renommage de .... (errno : 150)

J'obtiens cette erreur lorsque j'essaie d'exécuter une commande alter table pour supprimer une colonne : ERREUR 1025 (HY000) : Erreur lors du renommage de .... (errno : 150).

Si je comprends bien, il s'agit d'un problème de clé étrangère, mais je n'ai pas la moindre idée de la manière de le résoudre. Quelqu'un pourrait-il avoir la gentillesse de me dire comment le faire fonctionner ?

Le code utilisé pour la création du tableau :

CREATE TABLE categories(
cid INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
assets_id INT NOT NULL,
cat_name VARCHAR(30) NOT NULL,
INDEX(assets_id),
FOREIGN KEY (assets_id) REFERENCES asset(aid) ON UPDATE CASCADE

)
ENGINE=INNODB DEFAULT CHARSET=utf8;

La commande alter :

ALTER TABLE categories DROP COLUMN assets_id;

Le tableau des catégories est complètement vide. Il n'y a donc aucune information pour déclencher les restrictions CASCADE. Pourriez-vous m'aider à trouver le moyen de supprimer la colonne assets_id ? Merci.

69voto

Quassnoi Points 191041

Utilice SHOW CREATE TABLE categories pour afficher le nom de la contrainte.

Le plus souvent, ce sera categories_ibfk_1

Utilisez le nom pour déposer la clé étrangère d'abord et la colonne ensuite :

ALTER TABLE categories DROP FOREIGN KEY categories_ibfk_1;
ALTER TABLE categories DROP COLUMN assets_id;

0voto

Rabbit Points 11

Pour moi, le problème était différent :

Le site était (accidentellement) accessible à tous. Donc la mise à jour du script a été lancée plusieurs fois. Cela a causé des conditions de course qui ont jeté des erreurs comme celle-ci.

-> Veillez à ce que le site ne soit consulté qu'une seule fois, jusqu'à ce que chaque script soit terminé !

0voto

TaraGurung Points 44

J'ai eu un problème similaire une fois. J'ai supprimé la clé primaire de la TABLE A mais lorsque j'ai essayé de supprimer la colonne de la clé étrangère de la table B, la même erreur s'est produite.

Donc ce que l'on peut faire, c'est supprimer la colonne, nous pouvons sélectionner la colonne et cliquer sur le bouton vue des relations qui affichera les relations existantes de ces colonnes. Ensuite, j'ai supprimé la relation qu'elle avait avec une autre colonne de la table et j'ai réussi à supprimer la colonne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X