Jeg fandt det genererede sæt drop-sætninger nyttigt og anbefaler disse justeringer:
- Begræns de genererede drops til din database på denne måde:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';
Bemærk 1:Dette udfører ikke DROP-sætningerne, det giver dig bare en liste over dem. Du bliver nødt til at klippe og indsætte outputtet i din SQL-motor for at udføre dem.
Bemærk 2:Hvis du har VIEWS, skal du rette hver DROP TABLE `VIEW_NAME`
sætning til DROP VIEW `VIEW_NAME`
manuelt.
- Bemærk, pr. http://dev.mysql .com/doc/refman/5.5/da/drop-table.html , at droppe med kaskade er meningsløst / vildledende:
Derfor, for at drop-sætningerne skal fungere, hvis du har brug for:
SET FOREIGN_KEY_CHECKS = 0
Dette vil deaktivere kontrol af referenceintegritet - så når du er færdig med at udføre de drops, du har brug for, vil du gerne nulstille nøglekontrol med
SET FOREIGN_KEY_CHECKS = 1
- Den endelige udførelse skal se sådan ud:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;
NB:for at bruge output fra SELECT nemmere, kan mysql -B-indstillingen hjælpe.