Как я могу узнать, когда таблица MySQL была обновлена?
У меня есть база данных MYSQL для обслуживания API / RESTful с помощью PHP, в принципе я не использую какое-либо поле стиля LastDateUpdate
т. е. когда ресурс был вставлен или изменен.
Есть ли оператор SQL, чтобы получить последний раз, когда таблица или база данных были изменены в целом?
2 answers
MySQL (как и другие движки) имеет "таблицы", которые дают вам информацию из "таблиц" вашей БД... схемы (таблица, которую вам нужно запросить, - INFORMATION_SCHEMA) это также запрашивается с SQL
Если вы можете увидеть в справке MySQL в части 20.23 The INFORMATION_SCHEMA TABLES Table
Где вы можете прочитать
До MySQL 5.7.8, таблицы InnoDB разделов, столбец CREATE_TIME всегда показал NULL. В этом столбце показано создание правильной таблицы времени таких таблиц в MySQL 5.7.8 и позже. (Ошибка #17299181, Ошибка #69990)
Начиная с MySQL 5.7.2, UPDATE_TIME отображает значение даты и времени последнего обновления, INSERT или DELETE в таблицах InnoDB не раздаются. Ранее UPDATE_TIME отображает значение NULL для таблиц InnoDB. Значение timestamp MVCC отражает время фиксации, которое считается последним временем обновления. Временные метки не сохраняются при перезапускает сервер или когда таблица вытесняется из кэша словаря данных InnoDB.
Столбец UPDATE_TIME также отображает эту информацию для разделенных таблиц InnoDB в MySQL 5.7.8 и более поздних версиях. Ранее этот столбец всегда был нулевым для этих таблиц. (Ошибка #17299181, Ошибка #69990)
Пример
SELECT UPDATE_TIME
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'Jedis'
Вопрос / Ответ В SOen
Ссылки, которые могут помочь или помочь
Возвращает таблицы, отсортированные по последнему изменению:
SELECT TABLE_NAME, UPDATE_TIME
FROM information_schema.tables
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY UPDATE_TIME desc