だから私はこのテストを控えており、練習テストを行っていますが、どういうわけかトリガーが機能しません。教えてもらった通りにやったのですが、うまくいきません。誰でも私を助けることができますか?
私はこのテーブルを作成しました:
CREATE TABLE DiscountActions(
discountID int(5) NOT NULL AUTO_INCREMENT,
dishName varchar(70) NOT NULL,
type varchar(70) NOT NULL,
discountPercentage varchar(70) NOT NULL,
startdate date NOT NULL,
enddate date NOT NULL,
PRIMARY KEY (discountID)
);
そして、私はこのトリガーを追加したい:
DELIMITER //
CREATE TRIGGER `checkStartDatum`
AFTER INSERT ON `DiscountActions`
FOR EACH ROW
BEGIN
IF NEW.startdate < DATE(NOW())
THEN DELETE
FROM DiscountActions
WHERE startdate = NEW.startdate;
END IF ;
END ;
//
しかし、追加すると、次のエラーが表示されます。次のエラーが表示されます: #1064 - SQL 構文にエラーがあります。6 行目の 'THEN DELETE FROM kortingactie WHERE begindatum = NEW.b' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
これが行うべきことは次のとおりです。新しいDiscountActionを追加するとき、開始日が過去かどうかを確認する必要があります。開始日が過去の場合、割引アクション全体を削除することはできないため、削除する必要があります。