J'ai trouvé utile l'ensemble généré d'instructions de suppression et je recommande ces modifications :
- Limitez les gouttes générées à votre base de données comme ceci :
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';
Remarque 1 :Cela n'exécute pas les instructions DROP, cela vous en donne simplement une liste. Vous devrez couper et coller la sortie dans votre moteur SQL pour les exécuter.
Remarque 2 :Si vous avez des VIEWS, vous devrez corriger chaque DROP TABLE `VIEW_NAME`
déclaration à DROP VIEW `VIEW_NAME`
manuellement.
- Remarque, par http://dev.mysql .com/doc/refman/5.5/en/drop-table.html , déposer en cascade est inutile / trompeur :
Par conséquent, pour que les instructions drop fonctionnent si vous avez besoin :
SET FOREIGN_KEY_CHECKS = 0
Cela désactivera les contrôles d'intégrité référentielle - donc lorsque vous aurez terminé d'effectuer les suppressions dont vous avez besoin, vous souhaiterez réinitialiser la vérification des clés avec
SET FOREIGN_KEY_CHECKS = 1
- L'exécution finale devrait ressembler à :
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;
NB :pour utiliser la sortie de SELECT plus facilement, l'option mysql -B peut aider.