mysql. Удалить таблицу, которая имеет связь с внешним ключем (foreign_key)

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Если таблица базы данных, имеет связь с другой таблицей с помощью внешнего ключа, то ее как правило нельзя так просто удалить.
Скорее всего вы получите подобное сообщение об ошибке:
Error Code: 1217. Cannot delete or update a parent row: a foreign key constraint fails

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


Данный вариант избавление от связки ключей не является безопасным, так как может привести к поломке базы данных! Если вы решили им воспользоваться, то используйте на свой страх и риск!

Избавиться от связки внешних ключей можно следующим образом:
Устанавливаем соединение с базой данных и выполняем следующий запрос:
news - название таблицы для примера, вместо нее укажите название ВАШЕЙ таблицы!
SET FOREIGN_KEY_CHECKS=0; DROP TABLE news; SET FOREIGN_KEY_CHECKS=1;

Если вы знаете примеры лучше, то можете поделиться ими в комментариях или создать новость.

Пояснение по запросу:

SET FOREIGN_KEY_CHECKS=0; - Отключает ограничение в БД по внешнему ключу.


DROP TABLE news; - Удаляет таблицу news.


SET FOREIGN_KEY_CHECKS=1; - Возвращает ограничение в БД по внешнему ключу.


Проведя данные манипуляции мы отключаем связи по внешнему ключу для всей БД.
Удаляем ту таблицу, которую мы хотели удалить.
И снова включаем связи по внешнему ключу для всей БД.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.