服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|

Mysql下自动删除指定时间以前的记录的操作方法

2019-06-30 18:57枫小秋 Mysql

这篇文章主要介绍了MySQL下自动删除指定时间以前的记录的操作方法,需要的朋友可以参考下

关于Event:mysql5.1版本开始引进event概念。event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程。

首先删除2天以前记录的SQL语句(webserver_monitormemory为表名,time为时间字段):

delete From webserver_monitormemory where DATE(time) <= DATE(DATE_SUB(NOW(),INTERVAL 2 day));

创建存储过程:

DELIMITER //
CREATE PROCEDURE autodel()
  -> BEGIN
  -> delete From webserver_monitormemory where DATE(time) <= DATE(DATE_SUB(NOW(),INTERVAL 2 day));
  -> END
  -> //
DELIMITER ;

创建事件,定制每天执行autodel的存储过程:

CREATE EVENT `event_auto_del_memorydata`  
ON SCHEDULE EVERY 1 DAY STARTS '2017-11-20 00:00:00'  
ON COMPLETION NOT PRESERVE ENABLE DO CALL autodel();

开启事件计划(调度器)4种方法。键值1或者ON表示开启;0或者OFF表示关闭:

SET GLOBAL event_scheduler = 1; 
SET @@global.event_scheduler = 1; 
SET GLOBAL event_scheduler = ON; 
SET @@global.event_scheduler = ON;

查看当前是否已开启事件计划(调度器)3种方法:

SHOW VARIABLES LIKE 'event_scheduler';
SELECT @@event_scheduler;
SHOW PROCESSLIST;​

事件开启与关闭:

ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE ENABLE; //开启某事件
ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE DISABLE; //关闭某事件

这个是最简单但是也是最重要的,我们要手动的启动这个定时器,要不然是没法工作的。

ALTER EVENT event_time_clear_data ON 
COMPLETION PRESERVE ENABLE;

另外,关闭定时器的代码是:

ALTER EVENT event_time_clear_data ON 
COMPLETION PRESERVE DISABLE;

删除存储过程:

DROP PROCEDURE pro_clear_data;

删除Event:

DROP EVENT IF EXISTS event_time_clear_data1

总结

以上所述是小编给大家介绍的Mysql下自动删除指定时间以前的记录的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

延伸 · 阅读

精彩推荐
  • Mysql一个案例彻底弄懂如何正确使用mysql inndb联合索引

    一个案例彻底弄懂如何正确使用mysql inndb联合索引

    今天小编就为大家分享一篇关于一个案例彻底弄懂如何正确使用mysql inndb联合索引,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    周梦康4392019-06-05
  • MysqlMysql忘记密码的几种解决方案

    Mysql忘记密码的几种解决方案

    今天小编就为大家分享一篇关于Mysql忘记密码的几种解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    平而不凡3342019-06-03
  • Mysqlmysql导出表的字段和相关属性的步骤方法

    mysql导出表的字段和相关属性的步骤方法

    在本篇文章里小编给大家分享了关于mysql导出表的字段和相关属性的步骤方法,有需要的朋友们跟着学习下。...

    laozhang3052019-06-09
  • Mysql关于Mysql8.0版本驱动getTables返回所有库的表问题浅析

    关于Mysql8.0版本驱动getTables返回所有库的表问题浅析

    这篇文章主要给大家介绍了关于Mysql 8.0版本驱动getTables返回所有库的表问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    小马哥2922019-06-13
  • MysqlMySQL SHOW PROCESSLIST协助故障诊断全过程

    MySQL SHOW PROCESSLIST协助故障诊断全过程

    这篇文章主要给大家介绍了关于MySQL SHOW PROCESSLIST协助故障诊断的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...

    彭东稳3722019-06-05
  • Mysql详解mysql8.0创建用户授予权限报错解决方法

    详解mysql8.0创建用户授予权限报错解决方法

    这篇文章主要介绍了详解mysql8.0创建用户授予权限报错解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    眼沉沉1182019-06-22
  • MysqlSQL和NoSQL之间的区别总结

    SQL和NoSQL之间的区别总结

    在本篇内容里我们给大家精选了关于SQL和NoSQL之间的区别的总结内容,对此有需要的朋友们跟着学习下。...

    laozhang3382019-06-07
  • MysqlMYSQL5.7.24安装没有data目录和my-default.ini及服务无法启动的完美解决办法

    MYSQL5.7.24安装没有data目录和my-default.ini及服务无法启动的完美解

    这篇文章主要介绍了MYSQL-5.7.24安装,没有data目录和my-default.ini及服务无法启动的解决办法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    脚本之家4602019-06-15