mysql定时任务event——清理过期数据 (转)

1.查询是否开启事件调度

SHOW VARIABLES LIKE ‘event_scheduler‘;

2.开启事件调度

临时: SET GLOBAL event_scheduler = 1;

永久: vim /etc/my.cnf event_scheduler=ON

[mysqld]
event_scheduler=ON //这一行加入mysqld标签下

3.创建p_del_count存储过程。 接收传入参数30并执行删除数据操作,删除大于30天的数据。

drop procedure if exists p_del_count;
create procedure p_del_count(IN `date_inter` INT)
BEGIN
delete from t_req_log where (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(unix_timestamp(time),‘%Y%m%d‘))) >=date_inter;
END;

BEGIN 
   delete from t_warnmsg where (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(unix_timestamp(warntime),‘%Y%m%d‘))) >=date_inter; 
   delete from t_collection where (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(unix_timestamp(colltime),‘%Y%m%d‘))) >=date_inter; 
END

4.创建定时任务 从2018-05-15 00:00:00起每一天执行一次p_del_count这个存储过程,并将参数传给 p_del_count存储过程

drop event if exists e_del_t_req_log;
create event e_del_t_req_log
on schedule every 1 day starts ‘2018-05-15 00:00:00‘
on completion not preserve enable do call p_del_count (30);

on schedule every 1 day starts ‘2019-05-3 00:00:00‘

5.查看已有定时事件任务 SHOW EVENTS;

6.事件的开启与关闭 开启某事件:ALTER EVENT e_del_t_req_log ON COMPLETION PRESERVE ENABLE;

关闭某事件:ALTER EVENT e_del_t_req_log ON COMPLETION PRESERVE DISABLE;

原文地址:https://www.cnblogs.com/xihong2014/p/10801624.html

时间: 2024-11-02 14:33:13

mysql定时任务event——清理过期数据 (转)的相关文章

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 [sql] view plaincopy <span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</span> 由于一些业务需求,我们可能需要定时清除数据库一些废弃的数据

mysql定时任务(event事件)

1.事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在某些事情发生的时候启动.当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的.由于他们彼此相似,所以事件也称为临时性触发器. 事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CR

MySQL job/定时任务/event 学习

参考文章: https://blog.csdn.net/qq_21108311/article/details/82589850 https://blog.csdn.net/qq_27238185/article/details/56271877 https://blog.csdn.net/lxpbs8851/article/details/8019965 概要简述 原文链接:https://blog.csdn.net/qq_21108311/article/details/82589850 M

mysql 定时任务和存储过程

mysql 定时任务和存储过程 最近在做日志系统,中间用到了 mysql, 其中有一个要求: 把数据库中 7天之后的日志清除了.看到 mysql 也支持 定时任务.于是就用 mysql 来做了.下面就是这次使用代码. 存储过程 use webapm; --创建存储过程 DELIMITER $$ CREATE PROCEDURE `p_del_slow`(IN `date_inter` INT) BEGIN DELETE FROM slow_duration WHERE (TO_DAYS(NOW(

MySQL之event的介绍

MySQL5.1.6版本中引入了一项新特性EVENT,顾名思义就是事件.定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能.其实MySQL的EVENT 功能和linux下的的at.crontab或Windows下的Task Scheduler计划任务类似. 也被称为MySQL事件调度器(Event Scheduler),可以在某一个时间点执行一个SQL语句或一个语句块(BEGIN ... END):或者每隔固定间隔重复执行

Mysql定时任务详情

Mysql定时任务 1.查看是否开启事件调度器: SHOW VARIABLES LIKE 'event_scheduler'; #没有开启则无法启用定时器(0代表:off,1代表:on)#若未开启则执行SET GLOBAL event_scheduler = ON; #开启定时器 2.创建EVENT事件语法: #例.每隔10秒执行一次 CREATE EVENT 定时器名称 #event事件名 ON SCHEDULE EVERY 10 SECODE #每隔10秒调度一次(事件可以自行设置[例:MO

mysql定时任务配置

做项目有时会遇到一些状态需要每天定时去维护,我的方案是写成sql语句或者存储过程,再配置mysql调度器让数据库每天去执行.废话不多说,直接进去正文: 假如当前时间是2016-12-28 12:05:00,你执行下面语句,等到12:10时,系统自动执行调度任务去往aaa表里insert一条记录. Select @@event_scheduler;#查看事件调度程序,如果是OFF,则执行下条语句SET GLOBAL event_scheduler = ON;#设置时间调度程序为ON#每天的2016

Mysql中Event的一些测试

Mysql的event schedule可以让你设置你的mysql数据库在某个时间段执行你想要的动作create event test1on schedule every 1 daystarts '2007-09-01 12:00:00'on completion not preservedo insert into yyy values('hhh','uuu');或create event teston schedule at '2007-09-01 12:00:00' + interval

[数据库] Navicat for MySQL事件Event实现数据每日定期操作

在我们操作数据库过程中,通常会遇到一些某个时间点操作数据库的问题,例如:        (1).每天凌晨12点对数据库进行定时备份,结算和汇总:        (2).每天凌晨2点删除数据库前三天的数据:        (3).插入某个数据超过一定时间改变某个值的状态,比如预警系统.        这里就需要通过Event事件进行简单操作,下面将详细处理.你可能会想到通过触发器实现,但是如果是同一张表Insert插入数据后,但是触发器再进行Update更新操作是不行的,所以需要尝试通过Event