Postgresql pg_通知一行的子集

Postgresql pg_通知一行的子集,postgresql,triggers,Postgresql,Triggers,您好,我正在尝试解决如何将新行的子集作为json返回给pg_notify函数 我目前正在使用 create or replace function public.notify_site() returns trigger language plpgsql as $function$ begin perform pg_notify('ppsite', row_to_json(NEW)::text); RETURN new; END; $function$; 当表的after

您好,我正在尝试解决如何将新行的子集作为json返回给pg_notify函数

我目前正在使用

create or replace function public.notify_site()
returns trigger
language plpgsql
as $function$
begin
perform pg_notify('ppsite', row_to_json(NEW)::text);
      RETURN new;
    END;
$function$;
当表的after insert触发器失效时,返回整行数据效果很好,但是,我要做的是只返回NEW的一个子集,而不是返回整行数据。如果我能返回一个新的或类似的选择结果,那就太酷了。这是可能的,还是我的接收应用程序需要对数据进行排序

为了清楚起见,我想用say返回json

NEW.c1、NEW.c2、NEW.c5,而不是大约50个值的整行


Ta.

您可以从新记录中定义所需的投影:

 CREATE OR REPLACE FUNCTION public.notify_site()
 RETURNS trigger
 LANGUAGE plpgsql
AS $function$
    declare
      my_record record;
    begin
      select NEW.id as id, NEW.some_data as some_data INTO my_record;
      perform pg_notify('pp_site', row_to_json(my_record)::text);
      return NEW;
    end;
$function$
;