PostgreSQL:使用insert进行侦听
我有一个通知功能和触发器,如下所示 在这里,我在通知listerner\u到\u insert\u coderesVal之前插入记录 那我就看不到飞机上的有效载荷了 当我试着PostgreSQL:使用insert进行侦听,sql,postgresql,Sql,Postgresql,我有一个通知功能和触发器,如下所示 在这里,我在通知listerner\u到\u insert\u coderesVal之前插入记录 那我就看不到飞机上的有效载荷了 当我试着 LISTEN code_channel 但是如果我删除select listerner\u to\u insert\u coderesVal,我可以看到有效负载 下面将显示有效载荷 CREATE OR REPLACE FUNCTION public.codes_notify_trigger() RETURNS
LISTEN code_channel
但是如果我删除select listerner\u to\u insert\u coderesVal,我可以看到有效负载
下面将显示有效载荷
CREATE OR REPLACE FUNCTION public.codes_notify_trigger()
RETURNS trigger AS
$BODY$
DECLARE
resVal text;
BEGIN
resVal := row_to_json(NEW);
PERFORM pg_notify('code_channel', resVal::text);
RETURN new;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
但我想在听后插入记录
如何实现这一点?您得到的错误查询没有结果数据的目标。检查您的日志以确保
在PL/pgSQL代码中使用SELECT时,需要对返回的数据进行处理,例如将其插入表或变量中
如果不想对返回的数据执行任何操作,请改用“执行”
执行listerner_to_insert_coderesVal
CREATE OR REPLACE FUNCTION public.codes_notify_trigger()
RETURNS trigger AS
$BODY$
DECLARE
resVal text;
BEGIN
resVal := row_to_json(NEW);
PERFORM pg_notify('code_channel', resVal::text);
RETURN new;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;