更改事件并将结束设置为null

时间:2013-10-21 11:49:27

标签: mysql sql

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

我试过跑:

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为空。这主要是我需要实现的目标。

1 个答案:

答案 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)。