程序中经常需要在线判断表的数据变化,若有变化,需要重新加载。要实现这个功能,有很多方法啦
不嫌麻烦的可以自己设置表做记录,自己在每个update、delete、add之后做记录
善用触发器的,可以添加触发器将更新标记写表
其实最省事儿的是从mysql的表信息表(information_schema)中查询该表的update_time的变化即可
但是,使用这个方法之前要要注意下mysql服务的版本,5.5.44之前的版本只有MyISAM引擎可以正常查询到该值,
若是InnoDB引擎,update_time值是不会有更新,总是null值。
检索表的语句如下:
select ifnull(update_time , create_time) from information_schema.`TABLES` where table_schema=database() and table_name='mytable';
如果第一次新建的表可能还没有update_time,所以这里用了ifnull,当update_time为null时用create_time替代
database()获取当前连接配置的db名称,这样就可以在配置中灵活切换数据库了。