pg_notify与一行的子集



Hi我正在尝试如何将新行的子集作为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的一个子集,而不是整个东西。如果我能在NEW或类似的东西上返回选择的结果,那将是非常酷的。这可能吗?或者我的接收应用程序需要整理数据吗?

为了清楚起见,我想返回json,比如

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

Ta。

您可以从NEW记录中定义您想要的投影:

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$
;

最新更新