2010-02-03 3 views
15

Я не хочу бросить базу данных,Как удалить всю таблицу в MySQL?

, потому что я не хостинг веб-сайт на своей машине,

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

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

EDIT

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

ответ

5

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

Here Есть несколько методов, чтобы отбросить все таблицы без потери данных.

+0

Как использовать свой скрипт при получении этой ошибки: Не удается удалить или обновить родительскую строку: ограничение внешнего ключа не выполняется – user2298943

+0

@ user2298943 Используйте это: 'mysqldump -u [USERNAME] -p [PASSWORD] - add-drop-table --no-data [DATABASE] | grep -e '^ DROP \ | FOREIGN_KEY_CHECKS '| mysql -u [USERNAME] -p [ПАРОЛЬ] [БАЗА ДАННЫХ] ' – kiLLua

1

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

Выполнить это, чтобы показать ваше падение команды:

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


Nex вы можете сделать это на самом деле выполнить падение команды:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP | 
mysql -u[USERNAME] -p[PASSWORD] [DATABASE] 
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; 
27

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

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

+4

Это фактический ответ на этот вопрос. –

+0

Он работает! Но я отключил проверку внешнего ключа, чтобы удалить все таблицы! –

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

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

Смежные вопросы