web-dev-qa-db-ja.com

PostgreSQLテーブルへのすべての変更を追跡する

およそ500行しかないテーブルがありますが、それは私たちにとって非常に重要です。

このテーブルに発生するすべての変更を確認します。変更はタイムスタンプで追跡されます。

psql Shellを介して発生する変更も追跡したいので、アプリケーションコードで追跡を実行したくありません。

このコンテキストでは別のDBを使用しないので、PostgreSQL固有のソリューションに満足しています。

8
guettli

コメントから編集された回答

イベントに関する情報をログテーブルに書き込むテーブル上の任意のDMLイベントに triggers を配置します。 DDLも追跡したい場合は、 イベントトリガー - スティッキービット を参照してください。

a-horse-with-no-name によって提供されるいくつかの実装例:

数年経っても基本的な考え方は変わっておらず、どれも正しい選択です。 4番目の代替のソースが最近更新されました: https://github.com/2ndQuadrant/audit-trigger

6
user126897