Ответ 1
SELECT update_time
FROM information_schema.tables
WHERE table_schema = 'dbName'
AND table_name = 'tableName'
Я работаю с MySQL, и я хотел бы получить дату/время последнего изменения в любой таблице в базе данных. Каждая из моих таблиц имеет автоматическое обновление "* _modified" timestamp, поэтому я мог бы использовать это (* - префикс).
Целью этого является разработка, если данные вообще изменились с даты/времени последней резервной копии базы данных.
Мне было интересно, есть ли более простой способ сделать это с помощью DESCRIBE или SHOW? Я искал и экспериментировал, но ничего не нашел.
Спасибо за помощь.
SELECT update_time
FROM information_schema.tables
WHERE table_schema = 'dbName'
AND table_name = 'tableName'
Я нашел этот метод, http://mysqladministrators.blogspot.it/2012/02/get-database-size.html
Я не уверен, что это может вам помочь, так как я не так подготовлен в MySql
Получить размер базы данных, свободное пространство и последнее обновление
Чтобы получить текущий размер базы данных, просто запросив запрос в браузере запросов или CLI из базы данных INFORMATION_SCHEMA в таблицах TABLES.
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;
Принятый ответ велик, но я думаю, что лучший формат в случае, если он не сразу станет очевидным для новичков, будет:
SELECT table_name, update_time
FROM information_schema.tables
WHERE table_schema = 'myDBName'
order by update_time DESC
Так как мы не всегда знаем, какие таблицы были затронуты, и у этого есть бонус дать представление о том, что это за активность, показывая наиболее недавно обновленные таблицы.
Просто, для того, чтобы все таблицы в одной базе данных использовали этот запрос
SELECT TABLE_NAME,CREATE_TIME,UPDATE_TIME
FROM information_schema.tables
WHERE table_schema = 'database_name'
Что все