Не удалось удалить проиндексированный столбец, ОШИБКА 1025 (HY000): Ошибка при переименовании .. в .. (ошибка: 150) - PullRequest
2 голосов
/ 12 октября 2010

У меня проблемы с удалением столбца, который проиндексирован. Я действительно не понимаю, что происходит, так как у меня обычно нет проблем с удалением индексов. Когда я пытаюсь удалить столбец или индекс, я получаю следующую ошибку

ERROR 1025 (HY000): Error on rename of './db-name/#sql-135e_9ee6d2' to './db-name/table-name' (errno: 150)

Если я создаю новый индекс в том же столбце, я могу удалить старый индекс, но не новый (я думаю, он просто проверяет, доступен ли индекс). Парень, вы когда-нибудь сталкивались с этой проблемой, если есть какие-либо предложения, как я могу решить эту проблему?

двигатель: innoDB Версия mysql: Ver 14.12 Distrib 5.0.45, для redhat-linux-gnu (x86_64) с использованием readline 5.0

Спасибо за вашу помощь, если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

Ошибка ссылки на внешний ключ ...

Вы можете проверить с помощью следующего оператора, чтобы увидеть таблицу

ПОКАЗАТЬ СТАТУС ДВИГАТЕЛЯ INNODB

2 голосов
/ 12 октября 2010

У вас есть отношение внешнего ключа к этому индексу, поэтому InnoDB запрещает удаление этого столбца для обеспечения согласованности.Сначала удалите все внешние ключи, которые ссылаются на этот столбец.

Это происходит потому, что ALTER TABLE действительно работает, делая копию таблицы, а затем переименовывая, чтобы убрать старую таблицу и переместить новую таблицуна свое место.Это, безусловно, одно из менее значимых сообщений об ошибках, которые я видел в MySQL.

http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/

...