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

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

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

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

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

ИЗМЕНИТЬ

Все, что я могу сделать, это phpMyAdmin

Ответы

Ответ 1

mysqldump -u [USERNAME] -p [ПАРОЛЬ] --add-drop-table --no-data [DATABASE] | grep ^ DROP | mysql -u [USERNAME] -p [ПАРОЛЬ] [БАЗА ДАННЫХ]

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

Ответ 2

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

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

Ответ 3

Вы также можете сгенерировать 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;

Ответ 4

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

Запустите это, чтобы показать свои команды 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]

Ответ 5

$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]); 
}

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