Postgresql 返回的delete语句的每一行的Postges调用过程
我有一个delete语句,我想为受它影响的每一行调用一个过程。目前,我似乎只能访问被删除的集合中的一行 也就是说,如果下面的delete语句影响多行,那么我只看到一行传递到我的Postgresql 返回的delete语句的每一行的Postges调用过程,postgresql,plpgsql,Postgresql,Plpgsql,我有一个delete语句,我想为受它影响的每一行调用一个过程。目前,我似乎只能访问被删除的集合中的一行 也就是说,如果下面的delete语句影响多行,那么我只看到一行传递到我的analytics过程 create or replace function platform.update_foo() returns trigger language plpgsql as $$ declare result record; begin with affected_rows
analytics
过程
create or replace function platform.update_foo() returns trigger language plpgsql as $$
declare
result record;
begin
with affected_rows as (
delete from private.foo
where environment_id=new.environment_id
and name=new.name
returning *
)
select private.analytics(affected_rows, 'cancelled')
from affected_rows into result;
return new;
end;
$$;
我的分析功能有这样一个签名
analytics(f private.foo, t varchar default null)
returns void as $$
begin
-- ...
在删除之前,触发器应该返回旧的,而不是新的。请显示CREATE TRIGGER语句。您如何知道有多个
受影响的行
,但是分析
只调用一次?顺便说一句,result
最多只能保存一条记录,所以这可能是个问题。