mysql event 学习

mysql 通过事件可以实现定时任务 :

1、 检查你的MYSQL是否开了这个功能

show variables like "%scheduler" //注意 最后是er

2、  打开你的MYSQL的计划任务功能

使用这个功能之前必须确保event_scheduler已开启,可执行

SET GLOBAL event_scheduler = 1;
或SET GLOBAL event_scheduler = ON;
来开启,也可以直接在启动命令加上 “–event_scheduler=1”,例如:mysqld ... --event_scheduler=1

 

my.ini or my.cnf 中的

 

[mysqld]
添加 event_scheduler=ON

 

 二、事件基本操作

【删除事件】:

DROP EVENT [IF EXISTS] event_name 

【关闭事件】

  ALTER EVENT event_name ON  COMPLETION PRESERVE DISABLE;  

【关闭事件】

ALTER EVENT event_name ON  COMPLETION PRESERVE ENABLE;  

 

三、试验 

1) 每一秒插入一条数据到数据库里面

use test;

CREATE TABLE `aaa` (
`timeline` varchar(25) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

查看有哪些事件?

查看该event创建的详情 

查看事件执行效果

 

2) 一段时间后执行

15秒后清空表aaa

每天定时清空test表:

CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
DO TRUNCATE TABLE test.aaa;

当前时间起 过15秒后 每一秒插入一条数据到数据库

truncate table aaa;
drop EVENT if EXISTS d;
drop EVENT if EXISTS a;
CREATE EVENT a ON SCHEDULE
every 1 SECOND
STARTS CURRENT_TIMESTAMP + INTERVAL 15 SECOND
DO INSERT into aaa values(now());

show events;
show variables like "%scheduler";

 

定时插入一条数据,十五秒后停止

truncate table aaa;
drop EVENT if EXISTS a;
CREATE EVENT a ON SCHEDULE
EVERY 1 second
ENDS CURRENT_TIMESTAMP + INTERVAL 15 SECOND
COMMENT "test"
DO INSERT into aaa values(now());


show events;
show variables like "%scheduler";

 

posted @ 2017-02-10 18:03  brady-wang  阅读(285)  评论(0编辑  收藏  举报