2

我正在尝试创建一个触发器,如果​​有人说他们有折扣代码,他们的门票购买价格会下降 10 美元。

我运行了代码:

CREATE TRIGGER alterPurchasePrice AFTER INSERT ON CustomerOrders FOR EACH ROW 
BEGIN IF DiscountCode = 'yes' THEN SET PurchasePrice = Cost - 10 END$$

但是得到了错误:

#1193 - Unknown system variable 'PurchasePrice'

但是,我的表中有该列。所以我不明白为什么它不识别它?

4

2 回答 2

4

您需要将列标识为来自表:

DELIMITER $$

CREATE TRIGGER alterPurchasePrice
    BEFORE INSERT ON CustomerOrders
     FOR EACH ROW 
BEGIN
    IF new.DiscountCode = 'yes' THEN
        SET new.PurchasePrice = new.Cost - 10;
    END IF;
END$$

DELIMITER ;

如果要重新设置该值,则应该是插入前触发器。

于 2017-04-17T02:14:24.800 回答
-2

在每行插入 CustomerOrders 后创建触发器 alterPurchasePrice 如果 NEW.DiscountCode = 'yes' 然后设置 NEW.PurchasePrice = Cost - 10 END$$

您没有使用 NEW 关键字。请放心使用

于 2021-04-26T12:44:34.500 回答