创建MySQL触发器:附酒店相关表结构及待完善触发器代码
MySQL触发器完善实现
需求背景
为ROOM表创建触发器,在插入记录前校验type字段的有效值,仅允许regular、extra、suite、business、luxury、family这几种类型。
完善后的触发器代码
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 = '房间类型必须为regular、extra、suite、business、luxury或family中的一种'; END IF; END // DELIMITER ;
关键修改说明
- 补全SIGNAL语句的错误提示信息,让非法操作的报错更清晰
- 修正语法缺失:添加触发器块结束标记
END //,补全END IF后的分号 - 调整代码缩进,提升可读性
内容的提问来源于stack exchange,提问作者sinisterme
相关产品推荐
相关产品推荐

