我想找出最近一个小时在MySQL数据库中修改过的表。我怎样才能做到这一点?
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';