触发器根本不起作用

时间:2018-01-22 13:19:47

标签: mariadb database-trigger

我有这些表:Attendence(id,start_time as TIME,end_time as TIME)editattendencerequest(id,attendence_id,new_start_time,new_end_time,status as ENUM('Approved','Rejected','Pending')

现在,当通过更新其状态批准编辑请求时,我希望数据库自动将指定的注意事项的start_time和end_time更新为new_start_time和new_end_time。

我通过phpmyadmin定义了这个triger: enter image description here

这是代码中的触发器:

IF NEW.status <> OLD.status THEN
    IF NEW.status = 'Approved' THEN
        UPDATE attendence set start_time = NEW.start_time and end_time=NEW.end_time where id = NEW.attendence_id;
    END IF;
END IF

然而,当我插入注意力时,插入一个编辑请求,然后通过phpmyadmin将其状态更新为Approved all我根本没有看到更新的注意事项。

那么为什么它不起作用?以及如何使它工作?

我的操作系统是Windows 7并使用xampp 7.1.11。

1 个答案:

答案 0 :(得分:0)

UPDATE的and部分中的SET字是问题。 SET部分中的字段应以逗号分隔,请尝试改为:

IF NEW.status <> OLD.status THEN
    IF NEW.status = 'Approved' THEN
        UPDATE attendence 
           SET start_time = NEW.start_time, end_time = NEW.end_time
         WHERE id = NEW.attendence_id;
    END IF;
END IF