web-dev-qa-db-fra.com

Suivre toutes les modifications apportées à une table PostgreSQL

Nous avons une table qui ne compte qu'environ 500 lignes, mais c'est très important pour nous.

Je veux voir tous les changements qui arrivent à ce tableau. Les modifications doivent être suivies avec un horodatage.

Je ne veux pas que le suivi se produise dans le code de l'application, car je veux également suivre les modifications qui se produisent via psql Shell.

Je suis satisfait d'une solution spécifique à PostgreSQL, car je n'utilise pas de base de données différente dans ce contexte.

8
guettli

Réponse compilée à partir des commentaires

Vous mettriez déclencheurs pour tout événement DML sur la table qui écrit des informations sur l'événement dans une table de journal. Si vous souhaitez également suivre DDL, jetez un œil à déclencheurs d'événements - bit collant .

Quelques exemples d'implémentations données par a-horse-with-no-name :

Même s'ils ont plusieurs années, l'idée de base n'a pas changé et tous sont des choix valables. La source de la quatrième alternative a été mise à jour récemment: https://github.com/2ndQuadrant/audit-trigger

6
user126897