我想创建一个触发器,就像这样:
CREATE TRIGGER foo
AFTER UPDATE OR INSERT ON bar
FOR EACH ROW EXECUTE PROCEDURE baz(NEW.id);
使用NEW.id的部分不起作用。如何将更改的行(例如id)中的值发送到触发器函数。
答案 0 :(得分:2)
触发器功能(程序)自动识别NEW
和OLD
。无需将这些作为参数传递。
请阅读手册中Trigger Procedures章节中的更多内容:
当PL / pgSQL函数被调用为触发器时,有几个特殊的 变量在顶级块中自动创建。他们是:
NEW
数据类型记录;变量为行级触发器中的INSERT / UPDATE操作保存新数据库行。此变量为NULL 在语句级触发器和DELETE操作中。