information_schema表和update_time行为

时间:2011-04-11 13:40:48

标签: mysql updates information-schema

我想对information_schema及其行为有一些解释。 假设我想知道myisam表何时被修改。 我写这个查询

select update_time from information_schema.tables
where table_schema = 'my_db' and table_name = 'my_table'

即使我对我的表应用了一些更改,但在我运行flush tables之前没有任何变化。 不幸的是,在我看来,update_time存储了我运行刷新表的那一刻的日期和时间,而不是表更改真正发生时的日期和时间。这是真的吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我个人更喜欢在每个表中添加一个last_change时间戳,然后将其定义为“DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP”,这意味着每次修改行时mysql都会自动更新它。

有了这个,您可以直接查询表格,不仅知道表格被触摸了,还知道触摸了哪些行。

但它无法检测已删除的行。