获取上次更改MySQL数据库的日期/时间

时间:2012-11-15 17:31:36

标签: mysql datetime timestamp

我正在使用MySQL,我希望获得数据库中任何表的最后一次更改的日期/时间。我的每个表都有一个自动更新'* _modified'时间戳,所以我可以使用它(*是前缀)。

这样做的目的是确定自上次数据库备份的日期/时间以来数据是否完全改变。

我想知道使用DESCRIBE或SHOW有更简单的方法吗?我进行了搜索和实验,但还没有找到。

感谢您的帮助。

4 个答案:

答案 0 :(得分:14)

SELECT update_time
FROM   information_schema.tables
WHERE  table_schema = 'dbName'
       AND table_name = 'tableName'

答案 1 :(得分:2)

我从http://mysqladministrators.blogspot.it/2012/02/get-database-size.html

找到了这个方法

我不确定它是否可以帮助你,因为我在MySql中没有那么准备

获取数据库大小,可用空间和上次更新

仅通过从表格表中的INFORMATION_SCHEMA数据库查询查询浏览器或CLI来获取当前数据库大小。

SELECT table_schema "Data Base Name", 
sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema ;

获取数据库可用空间

SELECT table_schema "Data Base Name", 
sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB", 
sum( data_free )/ 1024 / 1024 "Free Space in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema;

获取按更新时间排序的数据库上次更新,然后按创建时间排序。

SELECT MAX(UPDATE_TIME), MAX(CREATE_TIME), TABLE_SCHEMA 
FROM `TABLES` 
GROUP BY TABLE_SCHEMA 
ORDER BY 1, 2;

答案 2 :(得分:0)

接受的答案很棒,但我认为一个更好的格式,以防新手不会立即明白:

SELECT table_name, update_time
FROM   information_schema.tables
WHERE  table_schema = 'myDBName'
order by update_time DESC

因为,我们并不总是知道触摸了哪些表格,并且通过显示最近更新的表格,可以提供关于活动内容的线索。

答案 3 :(得分:0)

简单地说, 获取一个数据库下的所有表使用此查询

SELECT TABLE_NAME,CREATE_TIME,UPDATE_TIME
FROM   information_schema.tables
WHERE  table_schema = 'database_name'

这就是全部