下面文章中介绍的是Mysql的定时计划的创建,运用的实战教程
每天必须定时去执行一条sql语句 或更新或删除或执行特定的sql语句。
mysql的客户端工具Navicat for MySQL提供了计划任务的形式,可以很好地实现该功能,而且也确实可行,比如像定时备份就做的很好。
然而当在执行的语句中包含有中文的时候,却无法定时执行了。
1.首先我们创建一个表格
###创建表
create table testtable (
id int auto_increment not null,
name varchar(100) not null default '',
introduce text not null,
createtime timestamp not null,
constraint pk_mytable primary key(id)
);
2.创建sql语句 运行多次的时候表示程序已经存在了
create procedure mypro1()
BEGIN
insert into mytable (name,introduce,createtime) values ('1111','inner mongolia',now());
end;
标红的部分为我们自定义的sql语句,文章中笔者写的是插入的sql语句
3.创建mysql的定时器event
create event if not exists eventJob
on schedule EVERY 2 DAY STARTS TIMESTAMP '2017-03-02 17:38:00'
on completion PRESERVE do call mypro();
蓝色语句的解释:从2017年3月2号17:38:00开始,每隔两天执行一次
###-- 启动定时器
###-- 停止定时器
###-- 删除定时器
SET GLOBAL event_scheduler = 1;
SET GLOBAL event_scheduler = 0;
drop EVENT eventJob;
5.开启,关闭事件
###-- 开启事件
###-- 关闭事件
###-- 查看定时器状态
ALTER EVENT eventJob ON COMPLETION PRESERVE ENABLE;
ALTER EVENT eventJob ON COMPLETION PRESERVE DISABLE;
SHOW VARIABLES LIKE '%sche%';
SHOW PROCESSLIST;
6.
###查看表,每隔两天进行一次插入
select * from testtable;
SHOW VARIABLES LIKE 'eventJob';