我正在使用MySQL,我希望获得数据库中任何表的最后一次更改的日期/时间。我的每个表都有一个自动更新'* _modified'时间戳,所以我可以使用它(*是前缀)。
这样做的目的是确定自上次数据库备份的日期/时间以来数据是否完全改变。
我想知道使用DESCRIBE或SHOW有更简单的方法吗?我进行了搜索和实验,但还没有找到。
感谢您的帮助。
答案 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'
这就是全部