来源:网易云课堂《精通MySQL存储过程、函数和触发器》课程
讲师:huangxifeng607(黄锡峰)
笔记
(1)一个简单的event scheduler实现福彩3d开奖
1.需求:设计一个福彩的开奖存储过程,每3分钟开奖一次。
第一步:先编写一个存储过程open_lottery,产生随机3个数,生成一条开奖记录
第二步:编写一个事件调度器,每3分钟调用一次这个存储过程
(2)存储过程与event实现
create procedure open_lottery()
begin
insert into lottery(num1, num2, num3, ctime);
select floor(rand()*9)+1, floor(rand()*9)+1, floor(rand()*9)+1, now();
end;
create event if not exists lottery_event
on schedule every 3 minute
on completion preserve
do call open_lottery;
(3)event scheduler的创建
1.创建event的格式
create event if not exists lottery_event 创建使用create event
on schedule every 3 minute 说明什么时候执行,多长时间执行一次
on completion preserve 调度计划执行完成后是否还保留
do call open_lottery; 这个调度计划要做什么?
event scheduler创建语法:
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE] 是否开启事件
[COMMENT 'comment'] 事件的注释
DO sql_statement;
(3)小结
1.event事件就是数据库的计划任务,按一定的事件和频率执行sql数据库操作
2.event是如何创建的