2010-02-03 75 views
15

我不想刪除數據庫,如何刪除MySQL中的所有表?

因爲我不託管我自己的機器上的網站,

刪除數據庫將需要重新創建,和許多設置。

在MySQL中是否有可用於刪除特定數據庫中所有表的命令?

編輯

一切我能做的,就是一個phpMyAdmin的

回答

5

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

Here有更多的方法來刪除所有的表,而不必刪除數據庫中。

+0

如何在出現此錯誤時使用您的腳本:無法刪除或更新父行:外鍵約束失敗 – user2298943 2013-07-27 13:31:36

+0

@ user2298943使用此項: 'mysqldump -u [USERNAME] -p [PASSWORD] - add-drop-table --no-data [DATABASE] | grep -e'^ DROP \ | FOREIGN_KEY_CHECKS'| mysql -u [USERNAME] -p [PASSWORD] [DATABASE]' – kiLLua 2017-02-03 01:51:00

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

你也可以從information_schema數據庫生成一個sql文件:

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

這是此問題的實際答案。 – 2016-02-25 14:23:28

+0

它的工作原理!但我禁用驗證外鍵刪除所有表! – 2016-12-20 15:06:33

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

它適合我!