sql >> Database teknologi >  >> RDS >> Mysql

MySQL DROP alle tabeller, ignorerer fremmednøgler

Jeg fandt det genererede sæt drop-sætninger nyttigt og anbefaler disse justeringer:

  1. 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.

  1. 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
  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.



  1. Vil flytning af data fra EBS til kortvarigt lager forbedre MySQL-forespørgselsydeevnen?

  2. Sådan viser du indekser oprettet til tabel i postgres

  3. LOG() Eksempler i SQL Server

  4. SQLiteConstraintException-fejl vises efter start af hver aktivitet