MySQL触发器中如何通过new命令访问含空格的属性
MySQL触发器中访问带空格字段的正确方式
当表字段名包含空格时,MySQL要求必须用**反引号()**包裹字段名才能正确识别,在触发器中访问NEW`对象的带空格字段时同样需要遵循这个规则。
针对你的场景,不需要修改Maximum Seats字段名,直接通过NEW.Maximum Seats``的形式就能访问该字段的值。
另外需要注意你原触发器代码存在两个问题:
- 循环条件
WHILE count < new.Maximum_Seats会遗漏最后一个座位(比如最大座位数为5时,只会插入1-4号座位),建议改为<=; - 代码中缺少
count的自增语句,会导致循环无法终止,必须添加SET count = count + 1;。
修正后的完整触发器代码如下:
CREATE TRIGGER auto_populate AFTER INSERT ON rooms FOR EACH ROW BEGIN DECLARE count INT; SET count = 1; WHILE count <= NEW.`Maximum Seats` DO INSERT INTO `room occupancy` (`RoomID`, `Seat Number`) VALUES (NEW.RoomID, count); SET count = count + 1; END WHILE; END
内容的提问来源于stack exchange,提问作者Danial
相关产品推荐
相关产品推荐

