Добавление нулевого заполнения в существующую таблицу

Я пытаюсь добавить ZEROFILL в поле автоинкрементного первичного идентификатора в базе данных MySQL. Вот код (автоматически сгенерированный MySQL Workbench):

ALTER TABLE `database`.`table` CHANGE COLUMN `id` `id` INT(11) ZEROFILL NOT NULL AUTO_INCREMENT

Это ошибка, которую я получаю:

Error Code: 1025. Error on rename of './database/#sql-2c8_cb' to './database/table' (errno: 150)

Похоже, что временная таблица была создана, и когда возникает ошибка, когда временная таблица переименовывается с исходным именем таблицы.

Любая помощь будет отличной!

1 ответ

Решение

При использовании InnoDB проверьте монитор состояния (ПОКАЗАТЬ СТАТУС ДВИГАТЕЛЯ INNODB) сразу после выполнения изменения. Он должен сказать вам, если это из-за ограничения FK. Возможно, вам придется удалить ограничения, изменить столбец и создать их заново.

Другие вопросы по тегам