我试图创建一个触发器,如果有人说他们有折扣代码,他们的机票购买价格会下降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'
但是,我的表中有该列。所以我不明白为什么它不认识它?
答案 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 关键字。请使用它