Как удалить все таблицы MySQL из командной строки?

обычно я открываю терминал.app и подключиться к удаленной базе данных MySQL.

затем я использую эту команду, чтобы удалить таблицу:

mysql> drop table [table name];

но мне нужна командная строка, чтобы удалить все таблицы в базе данных.

Если я использую:

mysql> drop database [database name];

Я полностью уничтожу базу данных и больше не смогу создавать таблицы. Я прав?

26
задан fixer1234
18.01.2023 0:24 Количество просмотров материала 3531
Распечатать страницу

3 ответа

вы можете удалить базу данных, а затем немедленно создать ее заново:

mysql> drop database [database name];

mysql> create database [database name];

или вы можете использовать скрипт для удаления каждой таблицы в базе данных.

26
отвечен William Jackson 2023-01-19 08:12

вы можете попробовать следующую команду:

mysqldump --no-data --add-drop-table DB_NAME | grep ^DROP | mysql -v DB_NAME

или:

mysql --silent --skip-column-names -e "SHOW TABLES" DB_NAME | xargs -L1 -I% echo 'DROP TABLE `%`;' | mysql -v DB_NAME

здесь DB_NAME - это имя базы данных. Учетные данные базы данных можно указать в ~/.my.cnf или добавление их в команду (например,-uroot -proot).

этот метод имеет некоторые преимущества перед удалением и созданием базы данных в случае, если у пользователя базы данных нет разрешения на ее удаление.

9
отвечен kenorb 2023-01-19 10:29

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

2
отвечен sveilleux2 2023-01-19 12:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх