所以我有这个测试即将到来,我正在做练习测试,但不知何故我的触发器不起作用。我已经完全按照我被教导的那样做了,但它就是行不通。有谁能够帮我?
我创建了这张表:
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 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 6 行的“THEN DELETE FROM kortingactie WHERE begindatum = NEW.b”附近使用正确的语法
它应该做的是:当你添加一个新的 DiscountAction 时,它应该检查 startdate 是否是过去的。如果开始日期是过去的,它应该删除整个折扣操作,因为这是不可能的。