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

Zahodit databáze MySQL odpovídající nějakému zástupnému znaku?

Základní myšlenkou je spustit „zobrazit tabulky“ ve vaší databázi a použít výsledky z toho k výběru požadovaných tabulek. Nemyslím si, že vám MySQL umožňuje cokoliv dělat s výslednou sadou z "ukázat tabulky", ale pravděpodobně se mýlím.

Zde je rychlé a špinavé řešení pomocí shellu:

mysql -u your_user -D your_database_name -e "show tables" -s | 
  egrep "^Whatever_" | 
  xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

Tím se vytisknou všechny příkazy shellu k odstranění tabulek začínajících "Whatever_". Pokud chcete, aby tyto příkazy skutečně provedl, odstraňte slovo „echo“.

UPRAVIT :Zapomněl jsem vysvětlit výše uvedené! Nevím, nakolik jste obeznámeni se skriptováním shellu, ale tady je:

mysql -u your_user -D your_database_name -e "show tables" -s

vytiskne seznam všech vašich tabulek se záhlavím "Tabulky_v_název_vaší_databáze". Výstup z toho je zprostředkován (symbol | znamená „přenesený“, jako při předávání) prostřednictvím následujícího příkazu:

egrep "^Whatever_"

vyhledá všechny řádky, které začínají (které symboly ^ znamenají „bytosti s“) slovem „Whatever_“ a vytiskne pouze ty. Nakonec tento seznam tabulek "Whatever_*" propojíme pomocí příkazu:

xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

který vezme každý řádek v seznamu názvů tabulek a vloží jej místo "@@" v příkazu

echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

Takže pokud byste měli spoustu tabulek s názvem „Whatever_1“, „Whatever_2“, „Whatever_3“, vygenerované příkazy by byly:

echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

Výsledkem bude následující:

mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

Doufám, že to bylo dost podrobností a že přílišnými informacemi jen tak někoho neotluču o hlavu. Hodně štěstí a buďte opatrní při používání příkazu "DROP TABLE"!



  1. MySQL vs PostgreSQL? Které si mám vybrat pro svůj projekt Django?

  2. proč tento dotaz mysql nefunguje?

  3. Jak přepsat přiřazení automaticky se zvyšujícího primárního klíče při vkládání hodnoty do tabulky MySQL?

  4. Chyba Android SQLite:číslo proměnné musí být mezi ?1 a ?999