sql - Postgresql 轻松更新堆栈限制达到错误
问题描述
我有一张超级简单的桌子
id, entries, max_capacity, factor 所以我们有前 500 个最大容量和 250 个条目,它应该是 50 个(50% 满)容易吧?问题是当我更新条目时,我也希望因子自动更新,所以我完成了这个功能:
create function myUp() returns trigger as $$
begin
update myTable
set factor=round(100*(entries/max_capacity),0);
end;
$$ language plpgsql;
和触发器
create trigger myUp
after insert or update on myTable
for each row
execute procedure myUp();
我得到了一个新的触发函数并运行了一个更新示例
update myTable
set entries=500
where id=1;
在我更新其中一行的条目时,我得到 ERROR stack depth limit exceeded CONTEXT update myTable....
为什么我会得到这个?我是否必须为所有行设置条目才能正常工作?我不知道为什么它不起作用。我想要之后,因为在插入新条目值之前我无法计算该值。