2009-01-20 67 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