Comment changer MySQL Clé Primaire d'signé non signé?

Dans ma Base de données MySQL InnoDB avec les clés étrangères, j'ai accidentellement fait une partie de mes clés primaires signée au lieu de unsigned que je veux être.

Maintenant, je veux la changer avec une instruction ALTER TABLE, mais il ne fonctionne pas:

ALTER TABLE `users` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT

Erreur MySQL:

Error on rename of './db_dev/#sql-478_3' to './db_dev/users' (errno: 150)

Je ne comprends pas pourquoi. Je suis en train de travailler avec les Clés Étrangères et essayé d'utiliser un

SET foreign_key_checks = 0;

Déclaration avant l'exécution de l'instruction ALTER TABLE à partir de ci-dessus. Ne fonctionne pas non plus.
Avis: Tous mes tableaux sont encore vides. Il n'y a pas de données.

Depuis la Base de données a beaucoup de tables, il serait beaucoup de travail à abandonner toutes les clés étrangères puis les ajouter manuellement à nouveau. (si cela devait être la raison).

OriginalL'auteur Norwald2 | 2012-05-31