Ответ 1
mysqldump -u [USERNAME] -p [ПАРОЛЬ] --add-drop-table --no-data [DATABASE] | grep ^ DROP | mysql -u [USERNAME] -p [ПАРОЛЬ] [БАЗА ДАННЫХ]
Здесь существует множество способов удалить все таблицы, не отбрасывая базу данных.
Я не хочу отбрасывать базу данных,
потому что я не размещаю сайт на своей машине,
Отбросить базу данных потребуется создать ее еще раз, и многие настройки.
Есть ли в MySQL команда, которая может использоваться для удаления всех таблиц в конкретной базе данных?
ИЗМЕНИТЬ
Все, что я могу сделать, это phpMyAdmin
mysqldump -u [USERNAME] -p [ПАРОЛЬ] --add-drop-table --no-data [DATABASE] | grep ^ DROP | mysql -u [USERNAME] -p [ПАРОЛЬ] [БАЗА ДАННЫХ]
Здесь существует множество способов удалить все таблицы, не отбрасывая базу данных.
Вы говорили об этом в phpMyAdmin.
Мне просто нужно было это сделать, и я не уверен, какую версию вы используете, но в версии, которую я имею, если вы перейдете к нижней части списка таблиц, вы можете нажать "Проверить все", а затем в раскрывающемся списке ниже к которому у "With Selected:" вы можете выбрать "Drop", и он опустошает все таблицы.
Вы также можете сгенерировать 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]);
}
он работает для меня!