postgresql pg_notify请求中没有结果数据的赋值

时间:2015-12-25 07:13:09

标签: postgresql notifications plpgsql

我想使用pg_notify函数接收通知。

CREATE OR REPLACE FUNCTION add_task_notify()
RETURNS trigger AS
$BODY$ 
DECLARE
   payload text;

BEGIN           
   SELECT pg_notify('tasks', 'payload');
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION add_task_notify()
OWNER TO postgres;

CREATE TRIGGER add_task_event_trigger
AFTER INSERT
ON tasks
FOR EACH ROW
EXECUTE PROCEDURE add_task_notify();

但是我得到了错误(从我的母语翻译 - 不完全是错误,你可以用英语获得):There is no assignment for result data in the request。怎么了?

2 个答案:

答案 0 :(得分:1)

我应该用这个:

PERFORM pg_notify('tasks', 'payload');

答案 1 :(得分:1)

原始错误消息为:

  

ERROR: query has no destination for result data

使用PERFORM代替SELECT

...
BEGIN           
    PERFORM pg_notify('tasks', 'payload');
    RETURN NEW;
END;
...