[MySQL] 資料庫刪除所有資料表的方法

一直以為這是有「簡單」指令可以操作的事(ex: drop all tables; 之類的),後來找了一些資料發現:沒有!!

看討論,主要有兩招:

  1. 用各種能接上 MySQL 資料庫的方式,一個一個表慢慢刪。
  2. root 權限,整個把這資料庫一次刪除後重建過同名資料庫。

第二個方法快速又暴力,但避免可能因為權限過大,出現閃失,不建議使用。

所以第一個方法就是:先讀取出所有的資料表,然後組裝指令為依序刪除這些表。 BASH 範例如下:

DROPTABLES=`/path/to/mysql -uUSERNAME -p'USERPASSWORD' DATABASE_NAME -s -e 'show tables' | sed -e 's/^/drop table /' -e 's/$/;/'`
/path/to/mysql -uUSERNAME -p'USERPASSWORD' DATABASE_NAME -e "$DROPTABLES"

要濃縮成一個指令也可以,上例僅拆兩行解讀而已,整個超長~ 但自己寫成程式處理時肯定不只兩行了。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *