如果我们像下面这样编写一个 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();
我的意思是像下面这样多行更新一次
update tbl1 set col1=1 where col2 in (2,3,4,5,6)
最佳答案
现在,可以在第 10 页中使用插入记录表的标识符:
CREATE TRIGGER transfer_insert
AFTER INSERT ON transfer
REFERENCING NEW TABLE AS inserted
FOR EACH STATEMENT
EXECUTE PROCEDURE check_transfer_balances_to_zero();
摘自第 10 页文档:https://www.postgresql.org/docs/10/static/sql-createtrigger.html
关于sql - 如何在 postgres 中使用 'for statement' 触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22600996/