如何将值从触发器之前传递到触发器之后

时间:2020-03-11 18:54:33

标签: postgresql

我想在postgresql中将触发前的值传递给触发后的值,这可能吗?,我尝试了tg_argv,它从一个函数中获取值,但不完全是我所需要的,

我要完成的工作是,有一个Audit表,其中有两列old_rec,new_rec, 在更新前触发器中,我将用触发器表的old_rec填充审计表,并返回审计表的主键。现在,在更新后触发器中,我必须为审计表的同一主键填充new_rec,即我必须将在audit_table上生成的主键从触发器之前传递到触发器之后,

那么我可以灵活地更改设计(给定选项)(pgAUDIT,我不感兴趣的第三方工具) 请建议是否有更好的方法。

Before Trigger on ABC table
declare
l_id integer;
begin
  insert into audit_table (old_rec) values(old.*) returning id into l_id;
end


after trigger on ABC table
declare 
l_id integer;
begin
   l_id = (somehow get the value generated in before trigger);
   update audit_table set new_rec = new.* where id = l_id;
end

0 个答案:

没有答案
相关问题