Wie kann ich alle MySQL-Tabellen von der Befehlszeile löschen?
Normalerweise öffne ich Terminal.app und eine Verbindung zu einer entfernten MySQL-Datenbank.
Dann benutze ich diesen Befehl, um eine Tabelle zu löschen:
mysql> drop table [table name];
Aber was ich brauche, ist die Befehlszeile, um alle Tabellen in der Datenbank zu löschen.
Wenn ich benutze:
mysql> drop database [database name];
Ich werde die Datenbank vollständig zerstören und keine Tabellen mehr erstellen können. Habe ich Recht?
3 answers
Sie können die Datenbank löschen und dann sofort neu erstellen:
mysql> drop database [database name];
mysql> create database [database name];
Oder Sie können ein Skript verwenden, um jede Tabelle in der Datenbank abzulegen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-08 11:46:47
Sie können den folgenden Befehl versuchen:
mysqldump --no-data --add-drop-table DB_NAME | grep ^DROP | mysql -v DB_NAME
Oder:
mysql --silent --skip-column-names -e "SHOW TABLES" DB_NAME | xargs -L1 -I% echo 'DROP TABLE `%`;' | mysql -v DB_NAME
Wobei DB_NAME
Ihr Datenbankname ist. Datenbankanmeldeinformationen Sie können entweder in ~/.my.cnf
angeben oder sie dem Befehl hinzufügen (z. B. -uroot -proot
).
Diese Methode hat einige Vorteile gegenüber dem Löschen und Erstellen der Datenbank, falls Ihr Datenbankbenutzer keine Berechtigung zum Löschen hat.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-10-27 11:37:18
mysql -u USERHERE -pPASSWORDHERE --silent --skip-column-names -e "SHOW TABLES" DATABASENAMEHERE | xargs -L1 -I% echo 'SET FOREIGN_KEY_CHECKS = 0; DROP TABLE
%; SET FOREIGN_KEY_CHECKS = 1;' | mysql -u USERHERE -pPASSWORDHERE -v DATABASENAMEHERE
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-02-08 15:04:11