查看event是否开启
show variables like '%sche%';
将事件计划开启
set global event_scheduler =1;
创建存储过程test
create procedure test ()
begin
update examinfo set endtime = now() where id = 14;
end;
创建event e_test
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call test();
每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去.
关闭事件任务
alter event e_test on
completion preserve disable;
开户事件任务
alter event e_test on
completion preserve enable;
以上测试均成功,测试环境为mysql 5.4.2-beta-community mysql community server(gpl)
以上的相关内容就是对mysql定时执行的介绍,望你能有所收获。
mysql 计划任务重启后消失
我们只要修改一配置即可
event_scheduler在mysql的config中设置为off有关。去mysql中将配置改为on则就搞定了。
更详细的大家可以往下看
mysql5.1.x版本中引入了一项新特性event,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。
要查看当前是否已开启事件调度器,可执行如下sql:
show variables like 'event_scheduler';
或
select @@event_scheduler;
或
show processlist;
若显示:
+-----------------+-------+
| variable_name | value |
+-----------------+-------+
| event_scheduler | off |
+-----------------+-------+
则可执行
set global event_scheduler = 1;
或
set global event_scheduler = on;
来开启,也可以直接在启动命令加上“
