下面的触发器执行没有任何错误,但是抛出
ERROR: relation "new" does not exist
关于将单行插入到 tbl1
CREATE OR REPLACE FUNCTION update_tbl1()
RETURNS TRIGGER AS
$BODY$ DECLARE
DECLARE no_of_rows INT;
BEGIN
SELECT COUNT(*) as no_of_rows FROM NEW; --error location
...
...
COMMIT TRANSACTION
;
END;
$BODY$ LANGUAGE plpgsql;
CREATE TRIGGER update_tbl2 AFTER INSERT ON tbl1
EXECUTE PROCEDURE update_tbl1();
我无法使用 NEW 和 OLD 在 postgres 中引用 INSERTED、DELETED (SQL SERVER) 行,感谢任何帮助。
我需要更新一个类似这样的表
Table-Bill
item cost subtotal
itm1 1 1
itm2 5 6
itm3 4 10
itm4 3 13
我的输入是 'item' 和 'cost' 列,触发器需要用到目前为止插入的所有项目的总和更新 'subtotal',我不确定是使用 'FOR EACH ROW' 还是 for statement 然后使用cursor 请帮助提供性能良好的解决方案
最佳答案
FOR EACH STATEMENT 不支持 NEW 和 OLD 用法,因此当前 postgres 中唯一的方法是通过 FOR EACH ROW 访问更新/插入/删除的行查看此帖子以获取更多信息 How to use 'for statement' triggers in postgres?
关于sql - 插入触发器上不存在 Postgres 错误关系 "new",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22526961/