sql >> Databáze >  >> RDS >> Mysql

MySQL DROP všechny tabulky, ignoruje cizí klíče

Vygenerovaná sada příkazů drop mi byla užitečná a doporučuji tyto úpravy:

  1. Omezte generované poklesy na vaši databázi takto:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';

Poznámka 1:Toto neprovede příkazy DROP, pouze zobrazí jejich seznam. Budete muset vyjmout a vložit výstup do vašeho SQL motoru, abyste je mohli spustit.

Poznámka 2:Pokud máte ZOBRAZENÍ, budete muset opravit každý DROP TABLE `VIEW_NAME` příkazu DROP VIEW `VIEW_NAME` ručně.

  1. Poznámka pro http://dev.mysql .com/doc/refman/5.5/en/drop-table.html , dropování pomocí kaskády je zbytečné / zavádějící:

Proto, aby příkazy drop fungovaly, pokud potřebujete:

SET FOREIGN_KEY_CHECKS = 0

Tím se deaktivují kontroly referenční integrity – takže až provedete potřebné poklesy, budete chtít resetovat kontrolu klíče pomocí

SET FOREIGN_KEY_CHECKS = 1
  1. Konečné provedení by mělo vypadat takto:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;

Poznámka:pro snazší použití výstupu SELECT může pomoci volba mysql -B.



  1. Jak rekurzivně najít všechna ID dětí?

  2. Přístup ODBC z Windows Server Core

  3. příkaz UPDATE pro opětovné přiřazení hodnoty sloupce podle číselného vzorce

  4. Streamování velkých sad výsledků pomocí MySQL