Как удалить всю таблицу в MySQL?

Я не хочу сбрасывать базу данных,

потому что я не размещаю веб-сайт на своей собственной машине,

drop база данных потребует создать его снова, и многие настройки.

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

редактировать

все, что я могу сделать, это в пределах phpMyAdmin и

5 ответов


mysqldump-u[имя пользователя] - p[пароль] -- add-drop-table --no-data [база данных] / grep ^DROP / mysql-u[имя пользователя] - p[пароль] [база данных]

здесь существует больше методов для удаления всех таблиц без удаления базы данных.


вы говорили об этом в phpMyAdmin.

Я просто должен был сделать это, и я не уверен, какую версию вы используете, но в версии, которую я имею, если вы прокрутите до нижней части списка таблиц, вы можете нажать "Проверить все", а затем в раскрывающемся списке рядом с ним, который имеет "с выбранным:" вы можете выбрать "падение", и он опустошает все таблицы.


вы также можете создать файл sql из базы данных information_schema:

Select concat('DROP TABLE database_name.', table_name,';') from information_schema.TABLES where table_schema='database_name';

это даст такой результат, как:

DROP TABLE database_name.table1;
DROP TABLE database_name.table2;
[...]
DROP TABLE database_name.tableN;

Я не знаю ничего прямого, чтобы удовлетворить ваши потребности. Вы можете попробовать сделать следующее:

запустите это, чтобы показать свои команды drop:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP


Nex вы можете сделать это, чтобы фактически выполнить команды drop:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP | 
mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

$q=mysql_query("SHOW TABLES FROM ".SQL_DATABASE_NAME);

while($r=mysql_fetch_assoc($q)){
    mysql_query("DROP TABLE ".$r["Tables_in_".SQL_DATABASE_NAME]); 
}

это работает для меня!