Uznałem, że wygenerowany zestaw instrukcji usuwania jest przydatny i zalecam następujące poprawki:
- Ogranicz generowane krople do swojej bazy danych w ten sposób:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';
Uwaga 1:To nie wykonuje instrukcji DROP, tylko daje ci ich listę. Będziesz musiał wyciąć i wkleić dane wyjściowe do silnika SQL, aby je wykonać.
Uwaga 2:Jeśli masz WIDOKI, będziesz musiał poprawić każdy DROP TABLE `VIEW_NAME`
instrukcja DROP VIEW `VIEW_NAME`
ręcznie.
- Uwaga, na http://dev.mysql .com/doc/refman/5.5/en/drop-table.html , spadanie kaskadowe jest bezcelowe / mylące:
Dlatego, aby instrukcje drop działały, jeśli potrzebujesz:
SET FOREIGN_KEY_CHECKS = 0
Spowoduje to wyłączenie sprawdzania integralności referencyjnej - więc po zakończeniu wykonywania potrzebnych spadków będziesz chciał zresetować sprawdzanie kluczy za pomocą
SET FOREIGN_KEY_CHECKS = 1
- Ostateczne wykonanie powinno wyglądać tak:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;
Uwaga:aby łatwiej korzystać z wyjścia SELECT, może pomóc opcja mysql -B.