利用perl脚本取回MySQL记录的insert时间

来源:互联网 发布:linux怎么配置网卡 编辑:程序博客网 时间:2024/06/05 20:16

在设计数据表时,添加一个TimeStamp字段已经是常规做法了,对于后期的数据维护、分析都很有用。但是由于各种原因,有时候设计表结构的工作往往是交给普通开发人员去做,又没有仔细去审核,等维护时才发现根本没有时间戳,这时候系统已经上线一段时间,再想找回历史数据的创建时间已无从下手。

好在MySQL数据库的binlog中已为我们忠实的记录了所有sql语句的操作时间(当然,前提是打开了日志选项),我们可以通过如下一段perl小脚本从日志中找回所有数据记录的创建时间(同样适用于自增ID。好吧,不加自增ID这种错误就更初级了,相信没人会犯的):

 

程序保存为GetTimestamp.pl,使用步骤为:
1、在table中建立类型为TimeStamp的字段CreateTime;
2、将binlog导出sql文件;
3、perl GetTimestamp.pl sql文件名 输出文件名 数据表名;
4、执行输出文件中所有的update语句,即可找回记录的创建时间点。
That’s all. 


btw,其实以上4步其实可以合并到脚本中自动完成,但和本文主题无涉。