我想创建一个从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'。为什么呢?
答案 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 scheduler
为OFF
,则需要进行设置
event_scheduler
ON
。
SET GLOBAL event_scheduler = ON;
更多强>
BEGIN ... END语法用于编写复合语句,其中 可以出现在存储的程序中(存储过程和函数, 触发器和事件)。复合语句可以包含多个 语句,由BEGIN和END关键字括起来。