数据库为什么数据库在创建事件时无法识别时间戳

时间:2016-02-24 02:44:17

标签: mysql

我想创建一个从2016-02-23 00:00:00开始重置字段的事件

CREATE EVENT reset_count
ON SCHEDULE
EVERY 72 HOUR STARTS '2016-02-23 00:00:00'
ON COMPLETION PRESERVE
ENABLE
DO BEGIN
UPDATE table_1 SET count1 = 0;

然后,出现以下错误: 你的sql语法有错误;检查与您的mysql服务器版本相对应的手册,以便在第7行的''附近使用正确的语法。

似乎数据库无法识别'2016-02-23 00:00:00'。为什么呢?

1 个答案:

答案 0 :(得分:1)

您使用BEGIN时没有END,也可能是分隔符问题。

尝试以下方法:

DROP EVENT IF EXISTS `reset_count`;
CREATE EVENT `reset_count`
ON SCHEDULE EVERY 72 HOUR STARTS '2016-02-23 00:00:00'
ON COMPLETION PRESERVE
ENABLE
DO
UPDATE table_1 SET count1 = 0;

如果出现分隔符问题:

delimiter //
CREATE EVENT `reset_count`
ON SCHEDULE EVERY 72 HOUR STARTS '2016-02-23 00:00:00'
ON COMPLETION PRESERVE
ENABLE
DO
UPDATE table_1 SET count1 = 0;
//

修改

注意:

  • 检查event scheduler是否为on

    SELECT @@event_scheduler;

  • 如果event schedulerOFF,则需要进行设置 event_scheduler ON

    SET GLOBAL event_scheduler = ON;

更多

  

BEGIN ... END语法用于编写复合语句,其中   可以出现在存储的程序中(存储过程和函数,   触发器和事件)。复合语句可以包含多个   语句,由BEGIN和END关键字括起来。

Reference