MySQL创建定时任务

 更新时间:2022年01月21日 09:01:41   作者:老马-Max  
本文详细讲解了MySQL创建定时任务的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

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

通过了解,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 OOM 系列三 摆脱MySQL被Kill的厄运

    MySQL OOM 系列三 摆脱MySQL被Kill的厄运

    这篇文章主要介绍了MySQL OOM 系列三 摆脱MySQL被Kill的厄运 ,需要的朋友可以参考下
    2016-07-07
  • MySQL压缩版zip安装问题的解决方法

    MySQL压缩版zip安装问题的解决方法

    这篇文章主要给大家介绍了关于MySQL压缩版zip安装问题的解决方法,文中介绍的非常详细,对大家的学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Mysql5.7.14安装配置方法操作图文教程(密码问题解决办法)

    Mysql5.7.14安装配置方法操作图文教程(密码问题解决办法)

    本篇文章主要涉及mysql5.7.14用以往的安装方法安装存在的密码登录不上,密码失效等问题的解决办法,需要的朋友参考下吧
    2017-01-01
  • MySQL中DATE_FORMATE函数使用时的注意点

    MySQL中DATE_FORMATE函数使用时的注意点

    这篇文章主要介绍了MySQL中DATE_FORMATE函数使用时的注意点,主要是针对其内置的字符集使用时需要转换而进行说明,需要的朋友可以参考下
    2015-05-05
  • Mysql分组查询取最新的几种方案总结

    Mysql分组查询取最新的几种方案总结

    在写报表功能时遇到一个需要根据用户id分组查询最新一条钱包明细数据的需求,下面这篇文章主要给大家总结介绍了关于Mysql分组查询取最新的几种方案,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    这篇文章主要介绍了Mysql数据库从5.6.28版本升到8.0.11版本过程中遇到的问题及解决方法,解决办法有三种,每种方法给大家介绍的都很详细,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • 6G数据库的导入 报各种错误的解决办法

    6G数据库的导入 报各种错误的解决办法

    今天看到一高人的mysql数据库达到了6G左右,导入都是个问题,上传也挺麻烦的,这里特分享下,方便需要的朋友
    2013-01-01
  • MySQL修改时区的方法小结

    MySQL修改时区的方法小结

    这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式、配置文件方式及代码方式,需要的朋友可以参考下
    2016-05-05
  • MySQL的存储引擎InnoDB和MyISAM

    MySQL的存储引擎InnoDB和MyISAM

    这篇文章主要介绍了MySQL的存储引擎InnoDB和MyISAM,MyISAM 用的是非聚集索引方式,即数据和索引落在不同的两个文件上,下文更多相关内容需要的小伙伴可以参考一下
    2022-04-04
  • Mysql 查询患某种疾病的患者语句

    Mysql 查询患某种疾病的患者语句

    select 语句的作用是根据输入的条件返回指定的数据结果,select 的语法可以有很多种查询的组合,基本上能够满足我们所有的查询数据需求,这篇文章主要介绍了Mysql 查询患某种疾病的患者,需要的朋友可以参考下
    2022-10-10

最新评论