如何通过c#监视postgresql数据库表中的任何更改

时间:2014-11-26 10:09:15

标签: c# .net postgresql

我有一个运行的Windows服务,它从PostgreSQL的表中读取配置。这些设置在服务启动时只读一次,对于它们的任何更改,需要重新启动服务。我正在寻找C#中的一种机制来监视数据库的任何变化。这样我就可以获取数据库更改的设置。

我正在寻找的一种方法是从PostgreSQL触发器编写/修改文本文件,然后使用FileWatcher更新设置。但也没有成功。

1 个答案:

答案 0 :(得分:1)

首先,我通过引用npgsql documentation

创建了一个与命令listen <channel_name>的永久侦听连接

然后我写了一个触发命令

的触发器

PERFORM pg_notify('<channel_name>', format('Changed: %s ', NEW.column_name));

因此触发器捕获了特定数据库表的任何更改,然后触发器将通知发送到通道并且c#代码已经监听并处理它