【发布时间】:2022-01-15 19:00:28
【问题描述】:
我想创建连续更新价格的触发器。但是,每当我添加金额时,这都可以正常工作,但每当我删除项目或以较小的值更新时,它就不起作用。如何使此触发器满足所有 3 个需求?我不想编写多个触发器来处理这个问题。
CREATE FUNCTION sum_total() RETURNS TRIGGER
AS $$
BEGIN
UPDATE payment
SET price = price + (SELECT SUM(price) from basket WHERE service_id = new.service_id)
WHERE service_id = new.service_id;
RETURN NULL;
END; $$ LANGUAGE plpgsql;
CREATE TRIGGER sum_total AFTER INSERT ON basket
FOR EACH ROW EXECUTE PROCEDURE sum_total();
【问题讨论】:
标签: sql postgresql