postgresql pg_notify 请求中没有对结果数据的赋值
postgresql pg_notify there is no assignment for result data in the request
我想使用 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
。怎么了?
我应该使用这个:
PERFORM pg_notify('tasks', 'payload');
原报错信息为:
ERROR: query has no destination for result data
.
使用PERFORM
代替SELECT
:
...
BEGIN
PERFORM pg_notify('tasks', 'payload');
RETURN NEW;
END;
...
我想使用 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
。怎么了?
我应该使用这个:
PERFORM pg_notify('tasks', 'payload');
原报错信息为:
ERROR: query has no destination for result data
.
使用PERFORM
代替SELECT
:
...
BEGIN
PERFORM pg_notify('tasks', 'payload');
RETURN NEW;
END;
...