Encontré útil el conjunto generado de sentencias drop y recomiendo estos ajustes:
- Limite las gotas generadas a su base de datos de esta manera:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';
Nota 1:Esto no ejecuta las sentencias DROP, solo le da una lista de ellas. Deberá cortar y pegar la salida en su motor SQL para ejecutarlos.
Nota 2:si tiene vistas, deberá corregir cada DROP TABLE `VIEW_NAME`
declaración a DROP VIEW `VIEW_NAME`
manualmente.
- Nota, por http://dev.mysql .com/doc/refman/5.5/en/drop-table.html , caer con cascada no tiene sentido/engañoso:
Por lo tanto, para que las sentencias drop funcionen si necesita:
SET FOREIGN_KEY_CHECKS = 0
Esto deshabilitará las verificaciones de integridad referencial, por lo que cuando termine de realizar las caídas que necesita, querrá restablecer la verificación de claves con
SET FOREIGN_KEY_CHECKS = 1
- La ejecución final debería verse así:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;
NB:para usar la salida de SELECT más fácilmente, la opción mysql -B puede ayudar.