繁体   English   中英

mysql预定事件问题

[英]mysql scheduled events problems

我有一个包含starttime,endtime,status的表保留。 我想创建一个事件调度程序,以检查当前时间是否大于endtime时间。 如果更大,则将status设置为0。
但我希望该调度程序永远每天从早上6点到下午6点以5分钟的间隔运行。 到目前为止,我已经写了一个代码

CREATE EVENT rescancel  
ON SCHEDULE EVERY 5 MINUTE  
STARTS 06:00:00   
ENDS 18:00:00
DO  
UPDATE reservation SET status = 0 WHERE CURTIME() > endtime  

我如何确保该活动每天运行? 到目前为止,从我从其他网站上读取的内容来看,这段代码仅在创建事件的那天从上午6点到下午6点每5分钟运行一次。 我错了吗? 我是mysql触发器和事件的新手。

测试查询中的当前时间:

CREATE EVENT rescancel
ON SCHEDULE EVERY 5 MINUTE
DO
    UPDATE reservation
    SET status = 0
    WHERE HOUR(CURTIME()) BETWEEN 6 AND 17
    AND CURTIME() > endtime

我使用类似的方法检查日期和时间,因此可以使用:

DELIMITER ||
CREATE EVENT rescancel
ON SCHEDULE
EVERY 5 MINUTE
STARTS NOW()
ON COMPLETION PRESERVE
COMMENT ''
  DO
  BEGIN
  IF CURRENT_TIME BETWEEN '06:00:00' AND '18:00:00' THEN
    UPDATE reservation SET status = 0 WHERE CURTIME() > endtime;
  END IF;
  END ||

DELIMITER ;

暂无
暂无

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

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