MySQL:触发错误:#1193 - 未知系统变量' PurchasePrice'

时间:2017-04-17 02:11:52

标签: mysql triggers mysql-error-1193

我试图创建一个触发器,如果​​有人说他们有折扣代码,他们的机票购买价格会下降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'

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

2 个答案:

答案 0 :(得分: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 ;

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

答案 1 :(得分:-2)

在插入每个行的 CustomerOrders 后创建触发器 alterPurchasePrice BEGIN IF NEW.DiscountCode = 'yes' THEN SET NEW.PurchasePrice = Cost - 10 END$$

您没有使用 NEW 关键字。请使用它