Maison >base de données >tutoriel mysql >Comment puis-je suivre et afficher les modifications de la base de données dans MySQL à l'aide de déclencheurs et de vues ?
Suivi de l'historique des modifications apportées à la base de données avec MySQL
De nombreux systèmes de bases de données nécessitent la possibilité de suivre les modifications apportées aux enregistrements au fil du temps. MySQL propose une technique simple pour y parvenir. Considérez une table de données nommée « données » dont vous souhaitez surveiller les modifications.
Pour commencer, créez une table d'historique pour les « données » avec la même structure, à l'exception de trois colonnes supplémentaires :
Ces colonnes stockent l'opération (insertion/mise à jour/suppression), le numéro de séquence , ainsi que la date et l'heure de l'opération, respectivement.
Ensuite, créer des déclencheurs pour capturer ces opérations et remplir la table d'historique :
Désormais, toutes les modifications de données seront enregistrées dans la table "data_history". Pour afficher les modifications d'une colonne spécifique au fil des mises à jour, vous pouvez joindre la table d'historique à elle-même sur les colonnes de clé primaire et de séquence :
CREATE VIEW data_history_changes AS SELECT t2.dt_datetime, t2.action, t1.row_id, IF(t1.a_column = t2.a_column, t1.a_column, t1.a_column || " to " || t2.a_column) AS a_column FROM data_history AS t1 INNER JOIN data_history AS t2 ON t1.row_id = t2.row_id WHERE (t1.revision = 1 AND t2.revision = 1) OR t2.revision = t1.revision + 1 ORDER BY t1.row_id ASC, t2.revision ASC
Cela devrait fournir une vue compacte et historique de toutes les modifications apportées au tableau "données".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!