我的预订表包含 RESERVATION_ID 、 ROOM_NUM、Date_Start 、 Date_End 和费用列
。我想要做的是插入除成本之外的所有列并自动填充成本。
delimiter //
CREATE TRIGGER upd_check before INSERT ON reservation
FOR EACH ROW
BEGIN
IF NEW.RESERVATION_COST = NULL THEN
SET NEW.RESERVATION_COST = 'timestampdiff(day, NEW.RESERVATION_STARTD, NEW.RESERVATION_ENDD)*70';
END IF;
END;//
delimiter ;
我编写了这个触发器
来执行此操作,但是每当我按Apply插入所有内容时,RESERVATION_COST
列中都不会插入任何内容。
为什么?
最佳答案
如果我有足够的声誉,我会把它放在评论中,但无论如何。触发器不能作用于激活它们的同一个表。似乎有限制,但我们也遇到了同样的问题。
此链接没有明确说明这一点,但确实说明了“在关联表中”。不一样:https://dev.mysql.com/doc/refman/5.0/en/triggers.html
关于MySQL 列更新与触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845258/