2017-04-17 8 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

あなたがテーブルから来て列を特定する必要があります:あなたは値を再設定したい場合は、それは前にINSERTトリガーでなければなりません

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 ; 

+0

これを実行すると、次のようになります。#1064 - SQL構文に誤りがあります。あなたのMySQLサーバのバージョンに対応するマニュアルを調べて、7行目の「END IF END」の近くで正しい構文を使用するようにしてください。私はEND $$で試しましたが、同じエラーが発生します。 – DJPharaohCHS

+0

変更後にまだエラーが発生する理由についてのご意見はありますか? – DJPharaohCHS

+0

@DJPharaohCHS。 。 。 'END IF'にセミコロンを追加しました。 –

関連する問題