Postgresql pg_通知一行的子集
您好,我正在尝试解决如何将新行的子集作为json返回给pg_notify函数 我目前正在使用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
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$
;