web-dev-qa-db-fra.com

Afficher la dernière date de modification de la base de données

Est-il possible d'obtenir l'horodatage de la dernière modification dans la base de données?

La date doit refléter tout changement - créer, mettre à jour, supprimer - et tout tableau - posts, commentaires, post_meta, pièces jointes, etc. J'ai trouvé quelques questions connexes, mais toutes les ne ciblent que des tables spécifiques, telles que Afficher la dernière mise à jour/modification du site WordPress ,

Mon parcours: je laisse mon client renseigner le contenu de son site sur mon environnement de transfert, pendant que je développe localement. De temps en temps, j'ai besoin de synchroniser les versions. Voir l'heure de la dernière modification soulagerait mon inquiétude de voir mon travail abandonné par inadvertance. :)

Merci d'avance!

1
Petr Cibulka

Il y a une colonne UPDATE_TIME dans la table TABLES de la base de données information_schema.

Vous pouvez donc essayer d’obtenir le maximum de cette colonne avec, par exemple:

SELECT MAX(`UPDATE_TIME`) 
FROM information_schema.TABLES
WHERE  TABLE_SCHEMA = 'dbname'

où nous remplaçons 'dbname' par le nom de base de données correspondant.

Plus d'informations connexes ici sur SO .

Depuis MySQL 5.7 docs :

UPDATE_TIME affiche une valeur d'horodatage pour la dernière UPDATE, INSERT ou DELETE effectuée sur les tables InnoDB qui ne sont pas partitionnées. Pour MVCC, la valeur d'horodatage reflète l'heure COMMIT, qui est considérée comme l'heure de la dernière mise à jour. Les horodatages ne sont pas conservés au redémarrage du serveur ou à l'expulsion de la table du cache du dictionnaire de données InnoDB.

La colonne UPDATE_TIME affiche également ces informations pour les tables InnoDB partitionnées.

Il semble y avoir eu un bug , UPDATE_TIME n’a pas été mis à jour pour les tables InnoDB dans MySQL <= 5.6, mais devrait être corrigé pour 5.7+.

2
birgire