Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 返回的delete语句的每一行的Postges调用过程_Postgresql_Plpgsql - Fatal编程技术网

Postgresql 返回的delete语句的每一行的Postges调用过程

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

我有一个delete语句,我想为受它影响的每一行调用一个过程。目前,我似乎只能访问被删除的集合中的一行

也就是说,如果下面的delete语句影响多行,那么我只看到一行传递到我的
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
最多只能保存一条记录,所以这可能是个问题。