Postgresql 触发器函数,用于检查在单个列中更新的数据是否等于某个值

Postgresql trigger function that checks if data that's been updated in a single column is equal to something

我有一个 table A,其中包含 3 列 idnameprice。 我正在尝试在 postgres 中创建一个触发器,当 price 下的值是 updated/set 到 0 时触发。 如果值为 0,则删除整行。

我是 postgresql 的初学者,但我的 node.js 项目迫切需要它。 非常感谢任何帮助!

这很简单。

第一步是创建触发器逻辑。此示例从 a if price = 0 中删除行。 id = NEW.id 将此删除限制为刚刚更改的行。

create or replace function zero_price_delete() 
returns trigger language plpgsql 
as $$
begin
  delete from a where price = 0 and id = NEW.id; 
  return new;
end; $$;

然后在 insertupdate 操作后将其指定为 A 上的 after 触发器。

create trigger zero_delete 
 after update or insert on a 
 for each row 
 execute procedure zero_price_delete();