Как заставить усечь все таблицы (которые все innodb) в базе данных в MySQL? - PullRequest
15 голосов
/ 06 апреля 2011

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

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

Ответы [ 2 ]

55 голосов
/ 06 апреля 2011

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

SET FOREIGN_KEY_CHECKS = 0;
...DML statements
SET FOREIGN_KEY_CHECKS = 1; -- enable checking
8 голосов
/ 06 апреля 2011

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

ALTER TABLE tablename DISABLE KEYS

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

ALTER TABLE tablename ENABLE KEYS

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

...