我正在寻找一个Unix shell脚本,它将截断架构中的所有表。已经提出了一个类似的问题,但我还有一些额外的要求,这些要求使得所提供的答案都不令人满意:
提前致谢, 唐
答案 0 :(得分:6)
像这样厚脸皮的东西怎么样:
mysqldump --no-data mydb | mysql mydb
获取模式的转储并将其重放到数据库中!
或者,查看mk-find中的Maatkit,您应该可以执行以下操作:
mk-find -exec "truncate %s"
mk-find的描述:
这个工具是MySQL的对应物 UNIX'find'命令。它接受 测试(例如“查找所有较大的表格 超过1GB“)并执行此类操作 执行SQL(“DROP TABLE%s”)。 有了这个工具供您使用 可以自动执行许多繁琐的任务,例如 测量表的大小 和索引并保存数据 历史趋势,老去世 临时表等等。它是 特别适用于周期性的 计划任务,如cron jobs。