mysql 表最后更新时间_如何判断MySQL表最后更新的时间?

我很惊讶,没有人建议每行跟踪最后更新时间:

mysql> CREATE TABLE foo (

id INT PRIMARY KEY

x INT,

updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

ON UPDATE CURRENT_TIMESTAMP,

KEY (updated_at)

);

mysql> INSERT INTO foo VALUES (1, NOW() - INTERVAL 3 DAY), (2, NOW());

mysql> SELECT * FROM foo;

+----+------+---------------------+

| id | x | updated_at |

+----+------+---------------------+

| 1 | NULL | 2013-08-18 03:26:28 |

| 2 | NULL | 2013-08-21 03:26:28 |

+----+------+---------------------+

mysql> UPDATE foo SET x = 1234 WHERE id = 1;

此更新,即使我们没有提到它的更新的时间戳。

mysql> SELECT * FROM foo;

+----+------+---------------------+

| id | x | updated_at |

+----+------+---------------------+

| 1 | 1235 | 2013-08-21 03:30:20 |

| 2 | NULL | 2013-08-21 03:26:28 |

+----+------+---------------------+

现在,您可以查询的MAX():

mysql> SELECT MAX(updated_at) FROM foo;

+---------------------+

| MAX(updated_at) |

+---------------------+

| 2013-08-21 03:30:20 |

+---------------------+

诚然,这需要更多的存储(每行4个字节TIMESTAMP)。

但是这个适用于InnoDB表之前的5.7.15版本的MySQL,其中INFORMATION_SCHEMA.TABLES.UPDATE_TIME没有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值