MySQL. Как отключить проверку внешних ключей?


Внешние ключи в MySQL используют все. Про их пользу и сферы применения будет отдельная статья.. Но часто бывает, что даже при использовании, существенно облегчающих жизнь приложений — например, phpMyAdmin, navicat, MySQLWorkBench и т.д., стает проблема удаления связанных записей.

Конечно, MySQL заботится о целостности и не дает случайно удалить связанные данные. В случае попытки выполнить TRUNCATE на связанную таблицу Вы получите что-то похожее на это:

Cannot truncate a table referenced in a foreign key constraint

Но, если Вы понимаете, что делаете и возиться с удалением цепочек Вам некогда — есть очень простой способ отключить проверку внешних ключей.
Для отключения проверки внешних ключей используйте следующую команду:

SET foreign_key_checks = 0

Соответственно, для включения проверки обратно, используйте код ниже:

SET foreign_key_checks = 1

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

SET foreign_key_checks = 0;
TRUNCATE TABLE `my_table`;
SET foreign_key_checks = 1;

Этот код удалит таблицу, не выполняя при этом проверку внешних ключей.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *