• ベストアンサー

データベースの変更を監視

こんにちは Postgresqlを使ってデータベースを構築しています。そのデータベースに更新などの変更が加えられたかを外部のプログラムでリアルタイムに監視をしたいのですが、どうのようにすれば良いか教えてください。プログラムはC言語で書こうと考えています。 今は、Postgresqlの"pg_log"にあるログファイルを見て変更があったかを調べようと考えています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

PostgreSQLのトリガ機能を使って実装するのはダメなのですか?外部で監視するよりはDBの機能を使った方が確実だと思いますが…

oogerp
質問者

お礼

回答ありがとうございます。 データベースを監視したい理由は、データベースに変更が生じた場合に、ネットワークで繋がっている他のパソコンへ変更されたことを伝えたいためです。 回答いただいた方法では上記のようなことはできない気がします。 説明不足ですみませんでした。また、何か良い方法があれば、教えてください。

その他の回答 (1)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

No.1です。 >説明不足ですみませんでした いえ、やりたいことが何となくわかったからこそトリガの利用を勧めたのですが… >回答いただいた方法では上記のようなことはできない気がします なぜトリガではできないと判断したのかを書かれるともっと良い回答が得られると思いますよ(まさか「できない気がした」だけではないですよね?)。

oogerp
質問者

お礼

回答ありがとうございました。 >なぜトリガではできないと判断したのか 勉強不足で、トリガ機能はINSERTなどSQLにある構文しか実行できないと思っていたからです。 トリガ機能を使う場合、パスが通っているディレクトリにC言語で他のパソコンへメッセージを送る関数を定義して、INSERTなどの処理があった場合に、定義した関数を呼び出すようにすればいいのでしょうか?

関連するQ&A