<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)
BEGIN
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;
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;
分享到:
相关推荐
Spring Boot作为Java领域的一个热门微服务框架,提供了强大的定时任务功能,能够帮助我们实现不同数据库间的数据同步,比如Oracle到MySQL。本篇文章将详细讲解如何利用Spring Boot的定时任务特性,结合Java的相关...
MySQL定时执行脚本,也称为计划任务或事件调度,是一种非常实用的功能,允许数据库系统按照预设的时间间隔自动执行特定的SQL语句或存储过程,无需依赖操作系统级别的计划任务服务。在MySQL中,这一功能主要通过`...
实现mysql 每天定时自动给数据库表追加分区,包含存储计划和存储过程
在这个特定的存储过程中,可能包括了根据某些条件(如时间、ID范围等)自动为表创建分区的逻辑,以及当不再需要某些分区时,自动删除这些分区的逻辑。这在处理大量历史数据时尤其有用,例如,可以定期清理过期的数据...
此外,实现动态定时任务通常需要依赖一些数据库操作的库,比如这里使用的是Mybatis,它是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射。Mybatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果...
在这个场景下,我们关注的是一个使用shell脚本来实现的自动化流程,它主要用于数据库中的表进行前一天的数据导出备份,并同时删除这些数据在当前表中的前一天版本。这个shell脚本,命名为`cron_update.sh`,通常会与...
`mysql.event`是MySQL服务器用来存储定时任务(也称为事件Scheduler)的地方,当这个表出现问题时,可能会导致定时任务无法正常执行。以下是一些详细的解决方案和相关知识点: 1. **权限问题**: - MySQL可能由于...
总结,Navicat for MySQL的Event功能提供了一种强大且灵活的方式来自动化数据库的维护任务,包括定时数据备份、数据清理和状态更新等,极大地提高了数据库管理的效率。在设计和实现Event时,需要考虑任务的执行时机...
本话题聚焦于如何使用Python来创建定时任务,并将解析XML报文的数据存储到MySQL数据库中。这一过程涉及到多个知识点,包括Python的定时任务库如APScheduler、XML处理库如ElementTree,以及与MySQL数据库交互的库如...
Event 是 MySQL 中的一种调度器,能够根据设定的时间间隔执行指定的 SQL 语句或存储过程。 在实际应用中,Event 可以用于定期删除不必要的数据,优化表结构,统计数据等。例如,在电商平台中,为了避免数据量的增长...
windows定时任务备份mysql数据库脚本
在定时任务中,它通常用于存储和查询数据,例如记录任务执行状态、时间戳等。 `Maven`是项目管理和构建工具,它管理项目的依赖关系,提供了一套标准的方式来构建和打包Java项目。在本例中,Maven将帮助我们整合所有...
在linux下通过shell指令实现按照用户指定的日期删除mysql中的表数据,不想收积分的,但是它最低收一分
MySQL中的定时任务,通常指的是Event事件,它是一种内置的机制,允许用户在特定时间或周期性地执行SQL语句或存储过程,而无需依赖操作系统级别的计划任务。Event事件的引入,使得数据库自身就能处理定时任务,提高了...
此任务通过MySQL数据库中的事件(Event)来定时执行一个自定义的存储过程(Stored Procedure),确保每天定时检查并更新满足条件的记录。 ### 一、任务概述 #### 1.1 背景与目的 在许多网站或应用中,岗位招聘信息...
数据库定时任务执行脚本,数据库脚本,定时任务,为了避免写大量的Java代码和减轻应用服务器压力
1. 连接登录MySQL后,先查看MySQL是否开启了事件功能: 命令:show variables like ‘%sc%’; 发现event_sheduler是OFF关闭的; 2. 打开event_scheuler: 临时开启(mysql服务重启后之后失效) SET GLOBAL event_...
本项目“analyData”就是一个使用Java实现的定时任务,它的主要功能是定期调用MySQL数据库中的存储过程,以执行数据分析或处理任务。下面我们将深入探讨这个项目涉及到的关键知识点。 1. **Java定时任务**: Java...
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...