我的预订表格为RESERVATION_ID , ROOM_NUM, Date_Start , Date_End and cost columns
。我想要做的是插入除成本之外的所有列并自动填充成本。
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 ;
我写了这个trigger
来做这件事,但每当我按下Apply以插入所有内容时,都不会向RESERVATION_COST
列插入任何内容。
为什么?
答案 0 :(得分:0)
如果我有足够的声誉,我会把它放在评论中,但无论如何。触发器不能在激活它们的同一个表上操作。似乎有限制,但我们遇到了同样的问题。
此链接没有明确说明这一点,但确实说“在关联的表格中”。不一样:https://dev.mysql.com/doc/refman/5.0/en/triggers.html
答案 1 :(得分:0)
您无法将值与NULL
进行比较,您需要检查它是否为IS NULL
。
e.g。
IF NEW.RESERVATION_COST IS NULL THEN