我在 PostgreSQL 中有 2 个表:行(idlines,iditems,quantity)和项目(iditems,stock)。iditems是行中的外键。当在行中插入新行时,我需要一个触发器来更新items表中的stock字段。它应该用 stock=stock-quantity替换stock 。
我对 PostgreSQL 没有太多经验,但这是我所做的。不幸的是不工作。
DROP FUNCTION function() CASCADE ;
CREATE OR REPLACE FUNCTION function()
RETURNS TRIGGER AS $trigger$
BEGIN
UPDATE items SET
stock=COALESCE(stock,0)-lines.quantity
WHERE lines.iditems=items.iditems;
END;
CREATE TRIGGER trigger
AFTER INSERT ON lines
FOR EACH ROW
EXECUTE PROCEDURE function();