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服务添加 iptables防火墙策略的方案

    Mysql服务添加 iptables防火墙策略的方案

    这篇文章主要介绍了给Mysql服务添加 iptables防火墙策略的方案,本文给大家分享两种解决方案,需要的朋友可以参考下
    2021-04-04
  • MySQL 整表加密解决方案 keyring_file详解

    MySQL 整表加密解决方案 keyring_file详解

    这篇文章主要介绍了MySQL 整表加密解决方案 keyring_file详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 详解MySQL中表的内外连接

    详解MySQL中表的内外连接

    这篇文章主要为大家介绍了MySQL中表的内外连接的相关知识,文中通过示例代码介绍的非常详细,具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • MySQL日志维护策略汇总

    MySQL日志维护策略汇总

    这篇文章主要介绍了MySQL日志维护策略汇总,需要的朋友可以参考下
    2015-08-08
  • MySql常用操作SQL语句汇总

    MySql常用操作SQL语句汇总

    这篇文章主要介绍了MySql常用操作SQL语句汇总,本文讲解了增加、删除、查询、修改等常用SQL语句实例,需要的朋友可以参考下
    2015-03-03
  • MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)

    MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)

    很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求
    2014-03-03
  • MySQL中slave_exec_mode参数详解

    MySQL中slave_exec_mode参数详解

    本篇文章主要给大家讲述了MySQL中slave_exec_mode参数的用法以及示例分析了出现的错误问题和解决办法,需要的朋友参考学习下吧。
    2017-12-12
  • mysql -参数thread_cache_size优化方法 小结

    mysql -参数thread_cache_size优化方法 小结

    以下是某门户网站的mysql状态实例及分析过程,绝对的第一手数据资料,很生动的体现了参数thread_cache_size优化的效果及优化该参数的必要性,希望对各位系统管理员能有帮助。
    2011-03-03
  • mysql8.0数据库无法被远程连接问题排查小结

    mysql8.0数据库无法被远程连接问题排查小结

    本文主要介绍了mysql8.0数据库无法被远程连接问题排查小结
    2024-07-07
  • mysql日期函数用法大全

    mysql日期函数用法大全

    日期函数在实际应用中可以帮助你轻松处理和操作日期时间数据,使得数据库操作更为灵活和便捷,本文主要介绍了mysql日期函数用法大全,感兴趣的可以了解一下
    2024-05-05

最新评论