Zwykle otwieram Terminal.app i łączę się ze zdalną bazą danych MySQL.
Następnie używam tego polecenia, aby upuścić tabelę:
mysql> drop table [table name];
Ale potrzebuję wiersza polecenia, aby usunąć wszystkie tabele z bazy danych.
Jeśli użyję:
mysql> drop database [database name];
Zniszczę bazę danych całkowicie i nie będę mógł ponownie tworzyć tabel. Czy mam rację?
command-line
terminal
mysql
chefnelone
źródło
źródło
Odpowiedzi:
Możesz usunąć bazę danych, a następnie natychmiast ją ponownie utworzyć:
Lub możesz użyć skryptu, aby upuścić każdą tabelę w bazie danych.
źródło
Możesz spróbować wykonać następujące polecenie:
Lub:
Gdzie
DB_NAME
jest nazwa twojej bazy danych. Poświadczenia bazy danych można określić w~/.my.cnf
lub dodając je do polecenia (np-uroot -proot
.).Ta metoda ma pewne zalety w stosunku do upuszczania i tworzenia bazy danych na wypadek, gdyby użytkownik bazy danych nie miał uprawnień do jej usunięcia.
źródło
--silent
i-v
/ lub--verbose
odpowiednio:--user=username --password=password --host=host.name
| sort -r
do linii odwrotnej, ale nadal nie jest kompatybilny z niektórymi db.mysql -u USERHERE -pPASSWORDHERE --silent --skip-column-names -e "SHOW TABLES" DATABASENAMEHERE | xargs -L1 -I% echo 'SET FOREIGN_KEY_CHECKS = 0; DROP TABLE
%;' | mysql -u USERHERE -pPASSWORDHERE -v DATABASENAMEHERE
źródło