2009-01-20 66 views
3

我正在尋找將截斷架構中所有表的Unix shell腳本。類似的問題已經被問過,但我有一些額外的要求,這使得沒有提供的答案令人滿意的:shell腳本截斷所有MySql表

  • 必須是一個Unix shell腳本(即沒有蟒蛇,PERL,PHP)
  • 腳本必須截斷以尊重外鍵約束的順序表
  • 我不希望有使用存儲過程提前

謝謝, 唐

回答

6

如何面露事情是這樣的:

mysqldump --no-data mydb | mysql mydb 

獲取模式,並重播到數據庫的轉儲!

另外,在Maatkit退房mk-find,你應該能夠做這樣的事情:

mk-find -exec "truncate %s" 

說明MK-發現:

這個工具是MySQL對口 的UNIX'查找'命令。它接受 測試(例如「查找大於1GB的所有大表 」)並執行諸如執行SQL(「DROP TABLE%s」)的動作,如 。 在您的處置這個工具,你可以 自動化許多繁瑣的任務,例如 作爲衡量你的表 和索引的大小和保存數據 歷史趨勢,下探老 劃傷表,等等。這是 特別有用在週期 計劃的任務,如cron作業。

+0

+1,剛剛在輸入中 – Greg 2009-01-20 15:56:24