mysql - 查询过去一小时内修改过的表

标签 mysql database

我想找出 MySQL 数据库中在过去一小时内修改了哪些表。我该怎么做?

最佳答案

MySQL 5.x 可以通过 INFORMATION_SCHEMA 数据库做到这一点。该数据库包含有关表、 View 、列等的信息。

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';

关于mysql - 查询过去一小时内修改过的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492040/

相关文章:

sql - 单行子查询返回多行 - 如何找到重复项?

node.js - 在 Mongo 中实现对大量记录进行排序的最佳方法?

mysql - 针对不同的条件,从同一张表中选择 max(date) 两次

php - 按不按日期顺序返回结果进行分组

javascript - 在 typeorm 中使用 select 插入

php - 按地点奖励不同的金额 (PHP)

java - 找出数据库死锁

mysql - 将原始 mysql 文件复制到 Windows 7 MySQL 5.6 通过 mysqlhotcopy 从 Linux MySQL 5.1 获取

java - 从数据库向其赋值后变量为空

mysql - NLP和英语词典数据库?