Я хочу получать уведомления с помощью функции 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. Что не так?

3
Ir S 25 Дек 2015 в 10:13

2 ответа

Лучший ответ

Исходное сообщение об ошибке:

ERROR: query has no destination for result data.

Используйте PERFORM вместо SELECT :

...
BEGIN           
    PERFORM pg_notify('tasks', 'payload');
    RETURN NEW;
END;
... 
1
klin 25 Дек 2015 в 07:27

Я должен использовать это:

PERFORM pg_notify('tasks', 'payload');
1
Ir S 25 Дек 2015 в 07:27