2017-04-17 77 views
0

我试图创建一个触发器,如果​​有人说他们有折扣代码,他们的门票的购买价格下降10美元。MySQL:触发错误:#1193 - 未知的系统变量'PurchasePrice'

我跑代码:

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

您需要确定列一个表来:

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 ; 

如果你想重新设置的值,它应该是一个前-INSERT触发器。

+0

当我运行时得到:#1064 - 你的SQL语法错误;请检查与您的MySQL服务器版本相对应的手册,以便在第7行'END IF END'附近使用正确的语法。我用END $$试过,但得到相同的错误。 – DJPharaohCHS

+0

有关为什么它会在更改后仍然出错的想法吗? – DJPharaohCHS

+0

@DJPharaohCHS。 。 。在“END IF”中添加了分号。 –