mysql. Удалить таблицу, которая имеет связь с внешним ключем (foreign_key)
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Если таблица базы данных, имеет связь с другой таблицей с помощью внешнего ключа, то ее как правило нельзя так просто удалить.
Скорее всего вы получите подобное сообщение об ошибке:
Сперва необходимо избавиться от внешнего ключа и только после этого удалить саму таблицу.
Данный вариант избавление от связки ключей не является безопасным, так как может привести к поломке базы данных! Если вы решили им воспользоваться, то используйте на свой страх и риск!
Избавиться от связки внешних ключей можно следующим образом:
Устанавливаем соединение с базой данных и выполняем следующий запрос:
news - название таблицы для примера, вместо нее укажите название ВАШЕЙ таблицы!
Если вы знаете примеры лучше, то можете поделиться ими в комментариях или создать новость.
Пояснение по запросу:
Проведя данные манипуляции мы отключаем связи по внешнему ключу для всей БД.
Удаляем ту таблицу, которую мы хотели удалить.
И снова включаем связи по внешнему ключу для всей БД.
Скорее всего вы получите подобное сообщение об ошибке:
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; - Возвращает ограничение в БД по внешнему ключу.
Проведя данные манипуляции мы отключаем связи по внешнему ключу для всей БД.
Удаляем ту таблицу, которую мы хотели удалить.
И снова включаем связи по внешнему ключу для всей БД.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.