嘿,我创建了一个以特定时间戳结束的事件,并希望将其更改为无限运行。
我试过跑步:

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参数,它会被旧的ENDS日期卡住,您可以看到当您:select * from information_schema.events
但事件确实继续运行,就好像ENDS为空一样。而这正是我最需要达到的。

最佳答案

我认为ENDS参数是可选的,否则您可以指定将来的日期。
ENDS后面必须跟一个时间戳。
EVERY子句可以包含可选的ENDS子句。ENDS关键字后面跟着一个时间戳值,该值告诉MySQL事件何时应该停止重复。您还可以使用+INTERVAL INTERVAL和ENDS;例如,每12小时开始当前时间戳+INTERVAL 30分钟结束当前时间戳+INTERVAL 4 WEEK相当于“每12小时,从现在开始30分钟,从现在开始4周结束”。不使用ENDS意味着事件将无限期地继续执行。
对于复杂的时间单位,ENDS支持与start相同的语法。
在EVERY子句中可以使用start、ENDS、both或both。
http://dev.mysql.com/doc/refman/5.1/en/create-event.html
您唯一的选择(和解决方法)是重新创建事件(http://bugs.mysql.com/bug.php?id=39173)。

关于mysql - 更改事件并将结尾设置为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19493710/

10-12 12:52