phpMyAdmin在MySQL中触发和约束的问题
我不断有错误消息,我不确定我在做什么错。 这是一流的餐厅:
餐厅( iDrestaurant ,namerest,电话,地址,叉子,叉子,命名,打字)
不在间隔[1,5]
CREATE TRIGGER CorrecF
BEFORE INSERT ON Restaurant
FOR EACH ROW
BEGIN
IF (5 < new.Forks AND new.Forks < 1) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Forks have to be between 1-5';
END IF;
END;
的目标是不允许餐厅的forks餐厅,这些餐厅 将不允许插入要约日期少于2周的报价()。
优惠( Idoffer ,咖啡,饮料,日期,价格,iDrest,Time_zone)
CREATE TRIGGER CorrectDate BEFORE INSERT ON Offer
FOR EACH ROW IF (DATE_ADD(NOW(), INTERVAL 2 WEEK) > new.Date) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Date have to be minimum 2 weeks from now';
END IF;
END;
I keep having error messages and i'm not sure what i'm doing wrong.
This is the class restaurant:
Restaurant (IdRestaurant, NameRest, Telephone, Address, Forks, NameCity, TypeCooking)
The objective is not allow restaurants with Forks that are not in the interval [1,5]
CREATE TRIGGER CorrecF
BEFORE INSERT ON Restaurant
FOR EACH ROW
BEGIN
IF (5 < new.Forks AND new.Forks < 1) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Forks have to be between 1-5';
END IF;
END;
Another one will be not allowing inserts of Offers that have a date less than 2 weeks from NOW().
Offer (IdOffer, Coffee, Drink, Date, Price, IdRest, Time_Zone)
CREATE TRIGGER CorrectDate BEFORE INSERT ON Offer
FOR EACH ROW IF (DATE_ADD(NOW(), INTERVAL 2 WEEK) > new.Date) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Date have to be minimum 2 weeks from now';
END IF;
END;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您似乎没有设置定界符,请参见 MySQL中的分列器和您的第二个触发器(如第一个)具有复合语句请参见 https://dev.mysql.com/ doc/refman/8.0/en in/begin-end.html 所以开始。
You don't appear to be setting delimiters see Delimiters in MySQL and your second trigger (like the first) has compound statements see https://dev.mysql.com/doc/refman/8.0/en/begin-end.html so begin..end is required