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!
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èreUPDATE
,INSERT
ouDELETE
effectuée sur les tablesInnoDB
qui ne sont pas partitionnées. Pour MVCC, la valeur d'horodatage reflète l'heureCOMMIT
, 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 tablesInnoDB
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+.