PostgreSQL:使用insert进行侦听

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

我有一个通知功能和触发器,如下所示

在这里,我在通知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 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;