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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:   MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 [sql] view plaincopy   MySQL定时任务event   由于一些业务需求,我们可能需要定时清除数据库一些废弃的数据,可以使用mysql的存储过程和事件来完成。
 

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

分类: MySql5.x
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. <span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</span>  
由于一些业务需求,我们可能需要定时清除 数据库一些废弃的数据,可以使用 mysql的存储过程和事件来完成。
下面例子定时清除日志表tbl_base_count中指定天数前的数据
1.创建日志表tbl_base_count:
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  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:
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  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.创建存储过程:
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. p_del_count   
  2. DELIMITER $$  
  3.   
  4. --  
  5. -- 存储过程  
  6. --  
  7. CREATE PROCEDURE `p_del_count`(IN `date_inter` INT)  
  8. BEGIN  
  9.     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;  
  10. END$$  
  11. DELIMITER ;  
按事件传过来的参数90,删除操作时间90天之前的数据
这样mysql就会定制每天去执行这个任务了。
 
4.(一)查看当前是否已开启事件计划(调度器)有3种方法:
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. SHOW VARIABLES LIKE 'event_scheduler';  
  2.  SELECT @@event_scheduler;  
  3.  SHOW PROCESSLIST;  
5.(二)开启事件计划(调度器)开关有4种方法:
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  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.(三)事件开启与关闭:
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. 开启某事件:ALTER EVENT e_del_logs ON COMPLETION PRESERVE ENABLE;  
  2. 关闭某事件:ALTER EVENT e_del_logs ON COMPLETION PRESERVE DISABLE;  
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
9天前
|
缓存 NoSQL 关系型数据库
13- Redis和Mysql如何保证数据⼀致?
该内容讨论了保证Redis和MySQL数据一致性的几种策略。首先提到的两种方法存在不一致风险:先更新MySQL再更新Redis,或先删Redis再更新MySQL。第三种方案是通过MQ异步同步以达到最终一致性,适用于一致性要求较高的场景。项目中根据不同业务需求选择不同方案,如对一致性要求不高的情况不做处理,时效性数据设置过期时间,高一致性需求则使用MQ确保同步,最严格的情况可能涉及分布式事务(如Seata的TCC模式)。
35 6
|
16天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
|
23天前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
20 0
|
26天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
20 1
|
17天前
|
存储 SQL 关系型数据库
【MySQL】4. 表的操作
【MySQL】4. 表的操作
20 0
|
16天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
16天前
|
缓存 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
|
26天前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
1天前
|
存储 SQL 关系型数据库
MySQL job 定时任务
MySQL job 定时任务
|
17天前
|
关系型数据库 MySQL
【MySQL】12. 表的内连和外连(重点)
【MySQL】12. 表的内连和外连(重点)
12 0