嘿我创建了一个以特定时间戳结束的事件,并希望将其改为无限运行。
我试过跑:
ALTER EVENT event_name
ON SCHEDULE EVERY '5' MINUTE
STARTS '2013-10-21 14:49' ENDS NULL
ON COMPLETION PRESERVE ENABLE DO [code];
但我收到错误错误代码:1543。ENDS无效或在STARTS之前
如何做到这一点?我知道我可以在遥远的未来设置一个看似无限的日期,但我希望将ENDS设置为null。
如果我简单地排除了ENDS参数,它会被旧的结束日期所困扰,你可以在以下时看到:select * from information_schema.events
但事件确实继续运行,好像ENDS为空。这主要是我需要实现的目标。
答案 0 :(得分:1)
我认为ENDS
参数是可选的,否则您可以指定将来的日期。
ENDS
后面必须跟一个时间戳。
EVERY子句可能包含可选的ENDS子句。 ENDS关键字后跟一个时间戳值,告诉MySQL何时该事件应该停止重复。你也可以使用+ INTERVAL间隔和ENDS;例如,每12小时开始CURRENT_TIMESTAMP + INTERVAL 30分钟结束CURRENT_TIMESTAMP + INTERVAL 4周相当于“每12个小时,从现在起30分钟开始,从现在起四周结束”。不使用ENDS意味着事件会无限期地继续执行。
ENDS支持与STARTS相同的复杂时间单位语法。
您可以在EVERY子句中使用STARTS,ENDS,both或两者。
http://dev.mysql.com/doc/refman/5.1/en/create-event.html
您唯一的选择(和解决方法)是重新创建活动(http://bugs.mysql.com/bug.php?id=39173)。