一尘不染

查询以查找最近一小时修改的表

mysql

我想找出最近一个小时在MySQL数据库中修改过的表。我怎样才能做到这一点?


阅读 257

收藏
2020-05-17

共1个答案

一尘不染

MySQL 5.x可以通过INFORMATION_SCHEMA数据库执行此操作。该数据库包含有关表,视图,列等的信息。

SELECT * 
FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE 
    DATE_SUB(NOW(), INTERVAL 1 HOUR) < `UPDATE_TIME`

返回最近一个小时内已更新的所有表(UPDATE_TIME)。您还可以按数据库名称(TABLE_SCHEMA列)进行过滤。

查询示例:

SELECT 
    CONCAT(`TABLE_SCHEMA`, '.', `TABLE_NAME`) AS `Table`, 
    UPDATE_TIME AS `Updated`
FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE
    DATE_SUB(NOW(), INTERVAL 3 DAY) < `UPDATE_TIME`
    AND `TABLE_SCHEMA` != 'INFORMATION_SCHEMA'
    AND `TABLE_TYPE` = 'BASE TABLE';
2020-05-17