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

snz8szmq  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(224)

我已经创建了一个触发器,&目标是当我更新一个表sales中的数量时,'product'表将减去该数量与该产品的比较。
我创建了下面的触发器,但是,当我更新sales表中的quantity字段(即1)时,触发器将针对product表中的每一行减去1(在quantity字段中)。不只是我需要的那个

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

有什么想法吗?
谢谢

fumotvh3

fumotvh31#

原因是您没有指定 WHERE 合同条款 UPDATE . 假设有两个表: sales & product . sales 表有一个字段 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;

相关问题