Попытка удалить столбцы, содержащие внешние ключи, и получено сообщение об ошибке.

Я использую phpMyAdmin версии 3.3.10.3 для управления своей базой данных.

Я использую ограничения InnoDB и внешнего ключа.

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

ALTER TABLE `product`
  DROP `c_status_id`,
  DROP `o_certification_id`,
  DROP `g_free_certification_id`,
  DROP `gm_certification_id`,
  DROP `n_certification_id`;

При попытке запроса я получил следующее сообщение об ошибке.

#1025 - Error on rename of ' /#sql-ea2_38d9f' to ' /product' (errno: 150

person user898750    schedule 18.08.2011    source источник
comment
Также это в ошибке: SQLSTATE [HY000]: Общая ошибка: 1025 (errno: 150) - не очень описательный или простой для Google. Я разместил больше текста ошибки здесь: wp.me/p3XdjT-11   -  person PrplHaz4    schedule 10.01.2014


Ответы (1)


Вы должны сначала удалить отношение внешнего ключа, прежде чем удалить столбец, на который ссылается отношение.

ALTER TABLE 'TABLE_NAME' DROP FOREIGN KEY 'NAME_OF_FOREIGN_KEY'

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

person Bueller    schedule 18.08.2011