postgresql - 带有行子集的 pg_notify
问题描述
嗨,我正在尝试研究如何将新行的子集作为 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$;
当表的后插入触发器很好时,它可以很好地返回整行数据,但是,我想要做的是只返回 NEW 的一个子集而不是整个东西。如果我可以在 NEW 或类似的东西上返回选择的结果,那将是非常酷的。这是可能的还是我的接收应用程序需要对数据进行分类?
说清楚,我想用say返回json
NEW.c1、NEW.c2、NEW.c5 而不是整行大约 50 个值。
塔。
解决方案
您可以从新记录中定义您想要的投影:
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$
;
推荐阅读
- powerbi - 在 Power BI 中显示前 10 名时获取总数的百分比
- opencascade - 如何在 Open CASCADE 中创建进度条或加载图标
- java - 复选框中的值在 Android 中不起作用
- kotlin - 使用 kotlin 协程为 elasticsearch 索引文档
- entity-framework-core - Entity Framework Core:我不明白查询拆分是如何工作的
- python - 在不知道其结构的情况下在 python 中导入 .dat 文件
- python - 如何解决Django rest框架中的这个错误?
- java - 如何在springboot中修改graphql端点URL
- sql - 获取库存转移位置和余额(库存)
- visual-studio-code - VSCode 调试配置混乱