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";



浙公网安备 33010602011771号