Я нашел сгенерированный набор операторов отбрасывания полезным и рекомендую следующие настройки:
- Ограничить сгенерированные отбрасывания для вашей базы данных следующим образом:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';
Примечание: Это не выполняет операторы DROP, оно просто дает вам их список. Вам нужно будет вырезать и вставить выходные данные в ваш движок SQL для их выполнения.
Обратите внимание, что для
http://dev.mysql.com/doc/refman/5.5/en/drop-table.html, удаление с каскадом бессмысленно / вводит в заблуждение:
"RESTRICT и CASCADE разрешены для упрощения переноса. В MySQL 5.5они ничего не делают. "
Поэтому, чтобы операторы drop работали, если вам нужно:
SET FOREIGN_KEY_CHECKS = 0
Это отключит проверку ссылочной целостности - так, когда вывыполнив необходимые дропы, сбросьте проверку ключа с помощью
SET FOREIGN_KEY_CHECKS = 1
Окончательное выполнение должно выглядеть следующим образом:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;
Примечание: для упрощения использования вывода SELECT может помочь опция mysql -B.