<span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</span>
由于一些业务需求,我们可能需要定时清除数据库一些废弃的数据,可以使用mysql的存储过程和事件来完成。
下面例子定时清除日志表tbl_base_count中指定天数前的数据
1.创建日志表tbl_base_count:
CREATE TABLE `tbl_base_count` (`id` int(11) NOT NULL AUTO_INCREMENT,`CAPTCHA` varchar(12) COLLATE utf8_bin NOT NULL,`PHONE` varchar(12) COLLATE utf8_bin NOT NULL,`SENDTIME` varchar(32) COLLATE utf8_bin NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

2.创建事件e_del_tbl_base_count:

CREATE EVENT `e_del_tbl_base_count`
ON SCHEDULE EVERY 1 DAY STARTS '2013-06-23 17:33:43'
ON COMPLETION NOT PRESERVE ENABLE DO CALL p_del_count (90);
上面代码表示从2013-07-30 17:33:43起每一天执行一次p_del_count这个存储过程,并带上参数

3.创建存储过程:

p_del_count
DELIMITER $$--
-- 存储过程
--
CREATE PROCEDURE `p_del_count`(IN `date_inter` INT)
BEGINDELETE FROM LOG WHERE (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(<span style="font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px;">SENDTIME</span>)))>=date_inter;
END$$
DELIMITER ;

按事件传过来的参数90,删除操作时间90天之前的数据

这样mysql就会定制每天去执行这个任务了。
4.(一)查看当前是否已开启事件计划(调度器)有3种方法:
SHOW VARIABLES LIKE 'event_scheduler';SELECT @@event_scheduler;SHOW PROCESSLIST;

5.(二)开启事件计划(调度器)开关有4种方法:
 SET GLOBAL event_scheduler = 1;SET @@global.event_scheduler = 1;SET GLOBAL event_scheduler = ON;SET @@global.event_scheduler = ON;

键值1或者ON表示开启;0或者OFF表示关闭;

6.(三)事件开启与关闭:
开启某事件:ALTER EVENT e_del_logs ON COMPLETION PRESERVE ENABLE;
关闭某事件:ALTER EVENT e_del_logs ON COMPLETION PRESERVE DISABLE;

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

  1. 重新打包mysql数据库文件_服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件...

    终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件.分享如下: 1. 环境: windows server 2003 + Apache 2.0 + PHP5 + ...

  2. html中wmv播放不要自动播放,网页播放器 windowsmediaplay中控制从wmv的指定时间开始播放,指定时间停止播放...

    首页 > 网络编程 > 网页播放器 > 网页播放器 windowsmediaplay 网页播放器 windowsmediaplay中控制从wmv的指定时间开始播放,指定时间停止播放 ...

  3. MySQL 定时任务event 按天建表 并将前一天数据导入新建的表中并删除总表数据 实现分表功能

    需求:实现日志系统保存日志信息到数据库,由于日志信息量巨大,需要每天一张表来管理数据. 思路:总表不能改变,因为代码中SQL语句已经写死,表名不能改变;因此我们每天定时将总表数据导入到新表中,并将总表 ...

  4. MySQL之在储存过程中使用表名为变量

      我们知道,在MySQL的储存过程中,一般的输入参数为各种数据类型,如数值型,字符型等.那么,能不能让输入参数等于表名呢?答案是肯定的,那就是使用MySQL提供的PREPARE语法.   关于PRE ...

  5. oracle定时器定时删除30天前的数据_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...

    Redis与Memcached区别: 两者都是非关系型数据库.主要有以下不同: 数据类型: Memcached仅支持字符串类型. redis支持:String,List,set,zset,hash 可 ...

  6. Windows定时删除某天前文件的批处理脚本

    备注: 1.如XP下因为没有forfiles.exe,拷贝windows2003下的forfiles.exe文件到XP的system32目录即可使用forfiles命令. 2.该文档适用于window ...

  7. oracle定时器定时删除30天前的数据_Redis的过期键删除策略

    对于Redis服务器来说,内存资源非常宝贵,如果一些过期键一直不被删除,就会造成资源浪费, 因此我们需要考虑一个问题:如果一个键过期了,它什么时候会被删除呢? 1. 常见的删除策略 常见的删除策略有以 ...

  8. linux定时删除N天前的文件(文件夹)

    在业务中,给定的磁盘容量小,为了避免爆盘,需要定时清除数据,所以总结了一下设置方法:可以使用find命令 find 路径 -mtime +天数 -type d -name "文件名" ...

  9. PHP获取时间戳、获取天周月的起始时间、指定时间所在周、指定时间的各个周等相关函数

    目录 一.时间戳和日期互相转换 二.PHP获取今日.昨日.上周.本周.上月.本月的起始时间戳 三.获取当前周的每天的起始时间 四.获取周的起始时间 1.根据指定时间获取所在周的起始时间和结束时间 2. ...

最新文章

  1. 拥抱 Java 8 并行流吧,让执行速度飞起!
  2. R语言ggplot2可视化:可视化堆叠的直方图、在bin中的每个分组部分添加数值标签、使用position_stack函数设置
  3. 爱回收:十年磨一剑,出鞘亮锋芒
  4. javascript 定义类(转载)
  5. jQuery 输入框 在光标位置插入内容, 并选中
  6. linux u盘分区 mdev 卸载问题,嵌入式linux 实现mdev SD卡和U盘自动挂载和卸载的方法 mdev.conf...
  7. 你喜欢什么样的课堂?
  8. ASP。NET的设计思想
  9. python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
  10. Effective C++ -----条款42:了解typename的双重意义
  11. Winform 中tabcontrol 美化
  12. 放映机服务器型号,巴可Barco SP4K-20CS4激光系列智能影院放映机投影机
  13. ImageJ的Macro语言实例教程
  14. 商城购物系统设计与实现(Java毕业设计-SSM项目)
  15. 【生活中的逻辑谬误】对人不对事和两难陷阱
  16. 新华三2018校园招聘笔试面试题学习
  17. 机器学习中的距离公式
  18. 有人用python抢到过吗_再不看就晚了,我用Python抢到了回家的火车票!
  19. 618 线上摆摊 | 看直播 领京豆
  20. 每天吃2根香蕉,30天后你会发现自己有惊人的变化!

热门文章

  1. micropython lcd触摸屏显示中文_基于Micropython的天气显示 进程帖
  2. c语言判断整数_C语言技能|(草稿,不断完善中...)
  3. 扫地机器人的特点描写_扫地机器人的特点和作用
  4. 理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
  5. php中的控制器是什么意思,理解PHP中的MVC编程之控制器_php
  6. LSGO软件技术团队内部技术交流
  7. 【转】医学图像中的窗宽、窗位!!
  8. 【转】SharePoint 术语表
  9. 一行c语言代码,打钩的一行c语言代码解释一下,谢谢,详细解释绝对最佳
  10. 云原生的本质_CloudNative