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