Подтвердить что ты не робот

Временно отключать ограничения

У меня много таблиц с ограничениями отношений. Таблицы содержат полные фиктивные данные, я хотел бы усекать/очищать данные из таблиц, сохраняя структуру.

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

Я пробовал это решение, но не работает! Как только я отключу, попробуйте обрезать, я получаю ошибку ограничения fk...

//disable
SET FOREIGN_KEY_CHECKS = 0;


//enable
SET FOREIGN_KEY_CHECKS = 1;

Я использую MySQL.

Любая идея?

4b9b3361

Ответ 1

Вам нужно удалить FK, если вы хотите использовать truncate, как обрезать не занесенную в журнал операцию.

Можно использовать delete с FK на месте, но удаление - это зарегистрированная операция и занимает больше времени.

Ответ 2

Начните с конца (таблицы только FK) и не ссылайтесь на какие-либо другие рассказы. Те, кого вы можете усечь. Затем проведите свой путь и удалите. Если вы усекаете/удаляете в правильном порядке, вы не будете нарушать противопоказания. Или вы могли бы сбросить все постоянные. Усекайте таблицы. Затем добавьте отпечатки.