任务开关开启mysql> show variables like '%event%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
1 row in set (0.00 sec)mysql>--任务脚本如下:
drop event if exists e_Set;
CREATE EVENT e_Set
ON SCHEDULE EVERY 1 day STARTS '2010-11-15 23:59:59' DO
begin
INSERT INTO EVENT_1 VALUES(NOW());
end;
然后SHOW EVENTS也能够看到这个任务。我把机器时间调整到2011-03-03 23:59:50 ,等待20秒,确保任务执行完成,再查EVENT_1表,里面没有写入记录。网络上讲计划任务的,基本上都是用SECOND来说明,每秒写入一条记录,我测试也是成功的,但是我想每天执行一次,却失败了。这个计划任务的作用是想用来做刷新日志,还有一些统计类的计算,用BAT文件已经可以做到,觉得维护起来不方便,数据迁移的时候还得去维护BAT文件,放到EVENT里,一个DUMP就全部搞定。大家帮我看看啥原因。
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
1 row in set (0.00 sec)mysql>--任务脚本如下:
drop event if exists e_Set;
CREATE EVENT e_Set
ON SCHEDULE EVERY 1 day STARTS '2010-11-15 23:59:59' DO
begin
INSERT INTO EVENT_1 VALUES(NOW());
end;
然后SHOW EVENTS也能够看到这个任务。我把机器时间调整到2011-03-03 23:59:50 ,等待20秒,确保任务执行完成,再查EVENT_1表,里面没有写入记录。网络上讲计划任务的,基本上都是用SECOND来说明,每秒写入一条记录,我测试也是成功的,但是我想每天执行一次,却失败了。这个计划任务的作用是想用来做刷新日志,还有一些统计类的计算,用BAT文件已经可以做到,觉得维护起来不方便,数据迁移的时候还得去维护BAT文件,放到EVENT里,一个DUMP就全部搞定。大家帮我看看啥原因。
CREATE EVENT e_Set
ON SCHEDULE EVERY 1 day STARTS '2010-11-15 23:59:59' DO
begin
INSERT INTO EVENT_1 VALUES(NOW());
end; 没有看到你所说的一天执行一次的计划的标示。
CREATE EVENT e_Set
ON SCHEDULE EVERY 86400 SECOND STARTS '2010-11-15 00:00:00' DO
begin
INSERT INTO EVENT_1 VALUES(NOW());
end; 用上面的,你再试试看啊!
EVERY 1 day 这里是任务的调度频度。
CREATE EVENT e_Set
ON SCHEDULE EVERY 1 day STARTS '2010-11-15 00:00:00' DO
begin
INSERT INTO EVENT_1 VALUES(NOW());
end;
是不是忘记开启时间了啊: ALTER EVENT e_Set ON COMPLETION PRESERVE ENABLE;执行上面这句再看看有了吗?
电脑时间别调整了。。也许读的不是电脑时间。。
------天,很可能不是从0:01开始算,而是从任务开始日期+1天-1秒算第一天,等1天吧,绝对好用的~~