从网上借鉴大神的。
- use onlinexam;
- -- 查看event事件是否开启
- show variables like '%sche%';
- -- 开启event事件 (非常重要)
- set global event_scheduler =1;
- -- 创建存储过程
- -- 更新试卷状态的存储过程
- drop procedure if exists update_paperstatus;
- create procedure update_paperstatus()
- begin
- update oe_paper
- set oe_paper_status='1'
- where oe_paper_startime<=now()
- and oe_paper_endtime>=now()
- and oe_paper_status!='2';
- update oe_paper
- set oe_paper_status='3'
- where oe_paper_endtime<now();
- end;
- -- 查看库中有哪些存储过程
- show procedure status where Db='mytest';
- show procedure status where Db='onlinexam';
- -- 创建定时任务
- -- 每60s执行一次
- DROP EVENT IF EXISTS e_updatePaperStatus; -- 删除事件
- create event if not exists e_updatePaperStatus
- on schedule every 10 second -- 设置10秒执行一次
- starts date_add(now(),interval 10 second) -- 在10后执行
- on completion preserve
- do call update_paperstatus();
- -- 开启事件任务
- alter event e_updatePaperStatus ON
- COMPLETION PRESERVE ENABLE;
- -- 关闭事件任务
- alter event e_updatePaperStatus ON
- COMPLETION PRESERVE DISABLE;