MySQL创建定时任务


Posted in MySQL onJanuary 22, 2022

定时任务是老生常谈了,因为我们总是需要定时修改特定的数据。

实现它的方法肯定不止一种,但我在相当长一段时间里都是用程序编码去做的,今天突然想到“为什么一定要采用调用的方式?”,用数据库自身的能力去实现不是更好么?

通过了解,mysql的事件机制可以完成定时任务,其原理是在指定的时间调用指定的存储过程。现在很简单了不是?开搞。

首先,我们需要一个存储过程,虽然很简单,但考虑到入门童鞋,我还是贴出一个例子:

delimiter $$;
create procedure del_car_viol()
begin
    delete from car_viol where `create` < date_sub(curdate(), interval 1 day);
end
$$;
delimiter;

这一段代码中创建了一个存储过程,它可以删除时间小于昨天的数据(表明字段名请无视)。

接下来就是创建一个事件,让事件按照某种规则去调用存储过程,这样就可以实现定时操作的功能。

代码如下:

create event `e_update_user_ticket`  
on schedule every 1 day starts '2017-09-02 00:00:00'  
on completion not preserve enable do call del_car_viol();

上面的代码创建的事件,它可以从2017年9月2日零点开始每隔一天自动调用之前写好的存储过程。

代码中的 1 day 代表一天一次,你也可以替换成 2 year(2年一次)。

事件创建好以后就会立刻执行一次,并且一般是默认开启的。

如果你想控制某个事件的运行状态,可以这样:

/*开启事件*/
alter event 事件名 on completion preserve enable; 
/*关闭事件*/
alter event 事件名 on completion preserve disable;

如果你不知道你的mysql有没有开启时间功能的支持,可以通过以下语句查询:

/*查看事件功能是否开启*/
show variables like 'event_scheduler';

查询表中value为 off 代表关,on 代表开。如果想开启事件功能,执行以下语句:

/*开启事件功能*/
set global event_scheduler = on;

需要注意的是,event机制是mysql5.1版本开始引入的,这意味着版本低于5.1的可能无法使用。

到此这篇关于MySQL创建定时任务的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
mysql部分操作
Apr 05 MySQL
Mysql 用户权限管理实现
May 25 MySQL
MySql开发之自动同步表结构
May 28 MySQL
zabbix监控mysql的实例方法
Jun 02 MySQL
为什么代码规范要求SQL语句不要过多的join
Jun 23 MySQL
MySQL系列之十四 MySQL的高可用实现
Jul 02 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
mysql timestamp比较查询遇到的坑及解决
Nov 27 MySQL
MySQL 自动填充 create_time 和 update_time
May 20 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
May 25 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
Aug 14 MySQL
SQL基础查询和LINQ集成化查询
Jan 18 #MySQL
MySQL常见优化方案汇总
Jan 18 #MySQL
mysql sum(if())和count(if())的用法说明
SQL语法CONSTRAINT约束操作详情
Jan 18 #MySQL
MySQL笔记 —SQL运算符
Jan 18 #MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 #MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 #MySQL
You might like
PHP定义字符串的四种方式详解
2018/02/06 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
jcrop基本参数一览
2013/07/16 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
Python中的生成器和yield详细介绍
2015/01/09 Python
python遍历数组的方法小结
2015/04/30 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
茶叶店创业计划书范文
2014/01/19 职场文书
请假条怎么写
2014/04/10 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
2019年大学推荐信
2019/06/24 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python