以下是我的表信息:
表HOTEL具有属性hotelid、address、manager name、number rooms、facilities,该表具有主键hotelid,该主键是AUTOINCREMENT类型。
具有属性编号、类型、占用率、床位数、床位类型、价格、酒店ID的ROOM表具有主键(酒店ID、编号),并且酒店ID是HOTEL的外键。
具有属性hotelid、cust id、room number、begin date、end date、credit card number、exp date的表RESERVATION具有主键(hotelid、cust id、room number、begin date),并且(hotelid、room number)是HOTEL的外键。
已更新
DELIMITER //
CREATE TRIGGER GoodRoom
BEFORE INSERT ON room
FOR EACH ROW
BEGIN
IF NEW.type NOT IN ('regular','extra', 'suite', 'business','luxury','family') THEN SIGNAL SQLSTATE '45000' SET MESSAGE TEXT
END IF;
DELIMITER ;
1条答案
按热度按时间cld4siwp1#
错误:
右边:
看起来你的条件很简单。假设你使用的是MySQL 8.0.16或更高版本,你应该考虑使用CHECK constraints而不是触发器。
此外,如果使用SIGNAL引发用户定义得错误,则SQLSTATE应为
'45000'
.https://dev.mysql.com/doc/refman/8.0/en/signal.html表示:
若要发出一般SQLSTATE值的信号,请使用'45000',表示“未行程的使用者定义例外状况”。