1.简介
事件调度器就是按照自定义的事件周期触发某种操作,类似于JAVA中的线程一样!
2.创建事件调度器
语法:
CREATE EVENT 事件调度器名称
ON SCHEDULE 指定时间(current_timestamp + INTERVAL 1 HOUR(每隔一小时执行一次)) -- 通过ON SCHEDULE 子句指定事件在何时执行
DO -- 通过DO子句指定要执行的具体操作
执行的SQL语句
当前表:
创建一个每十秒执行添加储数据的事件调度器
-- 创建事件调度器
CREATE EVENT five_seconds_insert
ON SCHEDULE EVERY 10 SECOND
DO
INSERT INTO my_schadule(context,create_time)
VALUES('test',NOW());
3.查看事件调度器
SHOW EVENTS;
4.查看事件调度器的状态
一般事件调度器为关闭的,需要超级用户权限
SHOW VARIABLES LIKE '%scheduler%';
5.开启事件调度器
SET GLOBAL event_scheduler=1;
6.结果
等待一段时间后
启动事件调度器成功!
7.禁用当前事件调度器
语法:alter event 事件调度器名称 disable
ALTER EVENT five_seconds_insert DISABLE
8.关闭事件调度器
所有的事件调度器都不能执行
SET GLOBAL event_scheduler=0;
9.删除事件调度器
语法:drop event [if exists] 事件调度器名称
DROP EVENT IF EXISTS five_seconds_insert;
10.总结
1.事件调度器就像是一个线程一样,一旦启动就会在规定的时间内指定任务
2.默认事件调度器是关闭的,需要超级用户权限来开启,SET GLOBAL event_scheduler=1;
3.事件调度器可以用在指定周期内的数据收集
,事件调度器存在于当前的MYSQL中,可能会影响性能
,不用的时候使用drop event 删除事件调度器
以上纯属个人见解,如有问题请联系本人!