如何将更改后的行中的值发送到postgres中的触发器?

时间:2011-11-04 19:13:19

标签: postgresql triggers

我想创建一个触发器,就像这样:

CREATE TRIGGER foo 
AFTER UPDATE OR INSERT ON bar 
FOR EACH ROW EXECUTE PROCEDURE baz(NEW.id);

使用NEW.id的部分不起作用。如何将更改的行(例如id)中的值发送到触发器函数。

1 个答案:

答案 0 :(得分:2)

触发器功能(程序)自动识别NEWOLD。无需将这些作为参数传递。 请阅读手册中Trigger Procedures章节中的更多内容:

  

当PL / pgSQL函数被调用为触发器时,有几个特殊的   变量在顶级块中自动创建。他们是:

     

NEW

     

数据类型记录;变量为行级触发器中的INSERT / UPDATE操作保存新数据库行。此变量为NULL   在语句级触发器和DELETE操作中。