Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Upuścić bazy danych MySQL pasujące do jakiegoś symbolu wieloznacznego?

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”!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MyCLI — klient MySQL/MariaDB z automatycznym uzupełnianiem i podświetlaniem składni

  2. phpMyAdmin - Błąd> Nieprawidłowy parametr formatu?

  3. Parametry GET podatne na wstrzyknięcie SQL - PHP

  4. mysql SELECT IF instrukcja z OR

  5. Porównanie zakresów dat