通知PGSQL中的FUNCTION将列值传递给C#

时间:2013-05-10 06:45:28

标签: c# postgresql npgsql

我在TRIGGER创建了一个PGSQL来通知我的 c#app ,当我的TABLE中创建了一个新的ROW并且列上的条件匹配时值。

msgfail 发送到c#:

的功能

CREATE OR REPLACE FUNCTION notify_fail() RETURNS TRIGGER AS '
BEGIN
NOTIFY msgfail;
RETURN NULL;
END;
'LANGUAGE plpgsql;

TRIGGER在新ROW为INSERT时调用FUNCTION:

CREATE TRIGGER failtrigger AFTER INSERT OR UPDATE
ON jm FOR EACH ROW
EXECUTE PROCEDURE notify_fail();
WHEN (NEW.message_string LIKE '%error%')
EXECUTE PROCEDURE notify_fail();

到目前为止,此工作正常。

问题:我想修改函数以将一个或多个列的内容返回给c#应用程序。

If a new ROW is INSERT then call FUNCTION. Inside FUNCTION: RETURN Column1.

这可能吗?

Npgsql.dll版本:2.0.11.91

1 个答案:

答案 0 :(得分:0)

目前,正如克雷格所说,npgsql不支持这一点。

您可能会发现有助于管理此问题的一组工具是http://pgxn.org/dist/pg_message_queue/

在高性能配置中支持多个订阅者方面它并不完全正常,但它很简单,并且可以很好地获取任意数据以通知侦听器。