我想对information_schema及其行为有一些解释。 假设我想知道myisam表何时被修改。 我写这个查询
select update_time from information_schema.tables
where table_schema = 'my_db' and table_name = 'my_table'
即使我对我的表应用了一些更改,但在我运行flush tables
之前没有任何变化。
不幸的是,在我看来,update_time
存储了我运行刷新表的那一刻的日期和时间,而不是表更改真正发生时的日期和时间。这是真的吗?
提前谢谢。
答案 0 :(得分:1)
我个人更喜欢在每个表中添加一个last_change时间戳,然后将其定义为“DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP”,这意味着每次修改行时mysql都会自动更新它。
有了这个,您可以直接查询表格,不仅知道表格被触摸了,还知道触摸了哪些行。
但它无法检测已删除的行。