繁体   English   中英

带触发器的MySQL列更新

[英]MySQL Column Update with trigger

我的预订表具有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列。

为什么?

如果我有足够的声誉,我会对此发表评论,但是无论如何。 触发器不能作用于激活它们的同一表。 似乎有限制,但我们遇到了同样的问题。

该链接没有明确说明这一点,但确实说“在关联表中”。 不一样: https//dev.mysql.com/doc/refman/5.0/en/triggers.html

您不能将值与NULL比较,而需要检查它是否为IS NULL

例如

 IF NEW.RESERVATION_COST IS NULL THEN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM