触发每次减去数量,而不是特定行

时间:2018-04-20 12:31:14

标签: mysql sql triggers

我创建了一个触发器,&目的是当我在一个表格中更新数量'销售''产品'然后,表格将减去该产品的数量。

我创建了下面的触发器,但是,当我更新sales表中的数量字段,即1时,触发器将减去产品表中每一行的减1(数量)字段。不只是我需要的那个

create trigger salesins after 
insert on sales for each row 
update product set stocklev=stocklev-new.qty; 

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

原因是您没有为WHERE指定UPDATE子句。假设您有2个表:sales& productsales表有一个字段product_id,它是product表主键id的外键。然后触发器可能是:

CREATE TRIGGER salesins AFTER INSERT ON sales FOR EACH ROW
    UPDATE product SET stocklev = stocklev - new.qty
    WHERE id = new.product_id;