gpt4 book ai didi

sql - 插入触发器上不存在 Postgres 错误关系 "new"

转载 作者:行者123 更新时间:2023-11-29 13:31:18 24 4
gpt4 key购买 nike

下面的触发器执行没有任何错误,但是抛出

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com