如果我们像下面这样编写FOR STATEMENT触发器,我们如何才能仅访问触发器过程/函数中的更新行
CREATE FUNCTION func1()
RETURNS trigger AS $$
BEGIN
--access only updated/inserted rows here???
RETURN null;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trig1
AFTER UPDATE OR DELETE OR INSERT
ON tbl1 FOR STATEMENT
EXECUTE PROCEDURE func1();
Run Code Online (Sandbox Code Playgroud)
我的意思是当有多个行更新一次,如下所示
update tbl1 set col1=1 where col2 in (2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)
小智 5
现在,可以在第10页中的插入记录表中使用标识符:
CREATE TRIGGER transfer_insert
AFTER INSERT ON transfer
REFERENCING NEW TABLE AS inserted
FOR EACH STATEMENT
EXECUTE PROCEDURE check_transfer_balances_to_zero();
Run Code Online (Sandbox Code Playgroud)
摘自pg 10 doc:https : //www.postgresql.org/docs/10/static/sql-createtrigger.html