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

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

NEW キーワードを使用していません。ぜひご利用ください

于 2021-04-26T12:44:34.500 に答える