Как заставить обрезать все таблицы (которые являются innodb) в базе данных в MySQL?

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

Есть ли простой способ заставить обрезать все таблицы? Или просто я должен сделать script, чтобы удалить базу данных, создать новую, а затем создать таблицы с нуля?

Ответ 1

О ограничениях FK вы можете отключить их со следующими операторами -

SET FOREIGN_KEY_CHECKS = 0;
...DML statements
SET FOREIGN_KEY_CHECKS = 1; -- enable checking

Ответ 2

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

ALTER TABLE tablename DISABLE KEYS

затем выполните свою работу, а затем снова включите ключи с помощью:

ALTER TABLE tablename ENABLE KEYS

Эта техника используется в дампах MySQL.