我一直在使用PostgreSQL的通知系统,但终生无法弄清楚为什么pg_tify(text,text)永远不起作用.这个特性没有过多的文档记录,而且我找不到很多在野外使用的例子,所以我想没有人会介意我在这里问一下.
运行以下命令完全符合预期:
LISTEN my_channel;
NOTIFY my_channel, 'my message text';
但是,使用pg_tify()函数会返回空值,并且不会发送任何通知.也没有给出错误.这种用法的一个示例是:
SELECT pg_notify('my_channel', 'my message text');
我可以使用Notify功能,但是我的目标是将通知简化为查询,如下所示:
select pg_notify(get_player_error_channel(username)::TEXT, 'test'::TEXT)
from player;
我想我一定错过了一些可笑的东西,但我一点运气都没有,找出了原因.讨论通知的页面可以在这里找到:http://www.postgresql.org/docs/9.0/static/sql-notify.html
在它上面,它提到了关于pg_tify()的这一点,这让我认为不会有太大的不同.
pg_notify
一如既往地感谢您的帮助
编辑:数据库版本为: i686-PC-LINUX-GNU上的PostgreSQL 9.0.3,GCC GCC(GCC)4.2.4编译,32位