[英]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.