В моей базе данных MySQL InnoDB с внешними ключами я случайно сделал некоторые из своих первичных ключей подписанными, а не беззнаковыми, как мне хотелось бы.
Теперь я хочу изменить его с помощью инструкции ALTER TABLE, но это не работает:
ALTER TABLE `users` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT
Ошибка MySQL:
Error on rename of './db_dev/#sql-478_3' to './db_dev/users' (errno: 150)
Я не понимаю, почему. Я работаю с внешними ключами и пытался использовать оператор
SET foreign_key_checks = 0;
перед выполнением ALTER TABLE сверху. Тоже не работает. Примечание: все мои столы по-прежнему пусты. В нем пока нет данных.
Поскольку в базе данных много таблиц, было бы очень сложно удалить все внешние ключи, а затем снова добавить их вручную. (если это должно быть причиной).