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

2.创建事件e_del_tbl_base_count:

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

3.创建存储过程:

  1. p_del_count
  2. DELIMITER $$
  3. --
  4. -- 存储过程
  5. --
  6. CREATE PROCEDURE `p_del_count`(IN `date_inter` INT)
  7. BEGIN
  8. DELETE 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;
  9. END$$
  10. DELIMITER ;

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

这样mysql就会定制每天去执行这个任务了。
 
4.(一)查看当前是否已开启事件计划(调度器)有3种方法:
  1. SHOW VARIABLES LIKE 'event_scheduler';
  2. SELECT @@event_scheduler;
  3. SHOW PROCESSLIST;
5.(二)开启事件计划(调度器)开关有4种方法:
  1. SET GLOBAL event_scheduler = 1;
  2. SET @@global.event_scheduler = 1;
  3. SET GLOBAL event_scheduler = ON;
  4. SET @@global.event_scheduler = ON;
键值1或者ON表示开启;0或者OFF表示关闭;
6.(三)事件开启与关闭:
  1. 开启某事件:ALTER EVENT e_del_logs ON COMPLETION PRESERVE ENABLE;
  2. 关闭某事件:ALTER EVENT e_del_logs ON COMPLETION PRESERVE DISABLE;

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

  1. mysql定时删除当前时间前分钟的数据

    mysql定时删除当前时间前分钟的数据 2013-01-31      0个评论       作者:上官车月 收藏    我要投稿 mysql定时删除当前时间前分钟的数据   Sql代码  www.2 ...

  2. Window bat expdp 定时任务逻辑备份 定时删除N天前的旧文件

    点击进入:Linux shell crontab expdp 定时任务逻辑备份 定时删除旧文件 首先建一个备份数据库用批处理文件,内容如下: rem expdp sz set sz_file=SZ_% ...

  3. oracle 定时删除3天前的备份数据

    不需要保留那么多,按公司要求只需要保留一个星期的即可. 1.那么有什么方法自动删除7天以前备份的*.log文件呢? 2.服务器过多,不可能一一手动创建,有没有自动完成这个创建计划任务的批处理呢? 首先 ...

  4. shell-删除指定时间前的文件

    需要配合find和rm两个命令完成 显示20分钟前的文件: find /home/prestat/bills/test -type f -mmin +20 -exec ls -l {} \; 删除20 ...

  5. mysql定时任务(event事件)

    1.事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...

  6. mysql定时任务event——清理过期数据

    需要删除数据的表名:t_req_log 建表sql CREATE TABLE `t_req_log` ( `id` ) NOT NULL AUTO_INCREMENT, `host` ) DEFAUL ...

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

    1.查询是否开启事件调度 SHOW VARIABLES LIKE 'event_scheduler'; 2.开启事件调度 临时: SET GLOBAL event_scheduler = 1; 永久: ...

  8. mysql定时任务(event事件)

    1.event事件 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器” 事件和触发器类似,都 ...

  9. MariaDB(MySql)使用储存过程和随机函数插入10万条数据

    ))default charset =utf8; #定义一个随机切割字符串的函数 delimiter // create function randStr() ) begin ) default 'A ...

随机推荐

  1. StatelessWidget 无状态组件 StatefulWidget 有状态组件 页面上绑定数据、改变页面数据

    一.Flutter 中自定义有状态组件 在 Flutter 中自定义组件其实就是一个类,这个类需要继承 StatelessWidget/StatefulWidget. StatelessWidget ...

  2. selenium+python实现自动化登录

    工作需要实现一个微博自动登录的操作,在网上差了一些资料,决定使用selenium+python实现 selenium 是一个web的自动化测试工具,主流一般配合java或者python使用,我这里使用 ...

  3. 「JSOI2015」送礼物

    「JSOI2015」送礼物 传送门 看到这题首先想到分数规划. 我们发现对于当前区间,如果它的最大值和最小值不是分居区间的两个端点的话,那么我们显然可以把两端多出去的部分舍掉,因为,在区间最大值最小值 ...

  4. 移动端,ajax 动态加载的元素,为动态添加的一系列同个类名的元素添加点击事件

    背景:一个列表页,有一系列同类名的元素,需要为每一个动态添加的列表项添加事件: 点击选择下图中不同的文档类型,再通过 ajax 动态加载不同的文档. 使用过的方法: 1.通知 jquery 的 $(s ...

  5. buuctf——facebook1

    分为注册和登陆两个页面 据大佬wp登陆页面又盲注,但我没测试 直接注册后登陆 注册后发现,会显示输入的url 根据目录扫描,发现robots.txt和flag.php robots.txt有源码备份 ...

  6. numpy.bincount正确理解

    今天看了个方法,numpy.bincount首先官网文档: numpy.bincount numpy.bincount(x, weights=None, minlength=0) Count numb ...

  7. IEEE 802.11r-2008

    IEEE 802.11r-2008 or fast BSS transition (FT), also called fast roaming, is an amendment to the IEEE ...

  8. 路由器安全-NetFlow

    1.NetFlow介绍 提供高层次的诊断,分类和识别网络异常. 使用NetFlow来检查哪些行为改变明显的攻击是非常有效的. 就像Wiretap一样捕获数据包. NetFlow像电话账单.(谁和谁在通 ...

  9. MQTT 浏览器 mqttws31.min.js

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Python学习第二十二课——Mysql 表记录的一些基本操作 (增删改)

    记录基本操作: 增:(insert into) 基本语法: insert into 表名(字段) values(对应字段的值): 例子1: insert into employee(id,name,a ...