获取插入的变量用于触发器

时间:2013-12-08 20:45:38

标签: mysql sql triggers

我对使用触发器有点新意,我正在尝试创建一个触发器,在订购产品时更新库存。我知道这是错的,因为我不能使用ROW,并且在使用ROW前缀时也会出错。那么下面的触发器应该怎么写呢?

CREATE TRIGGER changestock AFTER INSERT ON productorder
FOR EACH ROW
    UPDATE product
    SET product.stock = product.stock - ROW.orderamount
    WHERE product.productcode = ROW.productcode

1 个答案:

答案 0 :(得分:2)

使用NEW代替ROW .. NEW指的是刚刚插入的记录。您可以使用NEW从该记录中获取columnNames。在列名称之前:

CREATE TRIGGER changestock AFTER INSERT ON productorder
FOR EACH ROW
    UPDATE product
    SET product.stock = product.stock - NEW.orderamount
    WHERE product.productcode = NEW.productcode