Podstawową ideą jest uruchomienie „pokaż tabele” w swojej bazie danych i wykorzystanie uzyskanych wyników do wybrania żądanych tabel. Nie sądzę, aby MySQL pozwalał na zrobienie czegokolwiek z wynikami z „pokaż tabele”, ale prawdopodobnie się mylę.
Oto szybkie i brudne rozwiązanie przy użyciu powłoki:
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 @@"
Spowoduje to wydrukowanie wszystkich poleceń powłoki, aby usunąć tabele zaczynające się od "Whatever_". Jeśli chcesz, aby rzeczywiście wykonywał te polecenia, usuń słowo „echo”.
EDYTUJ :Zapomniałem wyjaśnić powyższe! Nie wiem, jak dobrze znasz skrypty powłoki, ale oto:
mysql -u your_user -D your_database_name -e "show tables" -s
wyświetla listę wszystkich tabel z nagłówkiem „Tables_in_your_database_name”. Wyjście z tego jest przesyłane potokiem (symbol | oznacza „potokiem”, jak w przekazywaniu) przez następne polecenie:
egrep "^Whatever_"
wyszukuje wszystkie wiersze, które zaczynają się (które symbole ^ oznaczają „istoty z”) słowem „Whatever_” i wyświetla tylko te. Na koniec przesyłamy tę listę tabel „Whatever_*” za pomocą polecenia:
xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"
który pobiera każdy wiersz z listy nazw tabel i wstawia go zamiast „@@” w poleceniu
echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"
Więc jeśli masz kilka tabel o nazwach „Cokolwiek_1”, „Cokolwiek_2”, „Cokolwiek_3”, wygenerowane polecenia będą wyglądały następująco:
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"
Co dałoby następujące informacje:
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"
Mam nadzieję, że to wystarczająco dużo szczegółów i że nie pokonuję nikogo po głowie zbyt dużą ilością informacji. Powodzenia i bądź ostrożny podczas używania polecenia „DROP TABLE”!