<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;
分享到:
相关推荐
SpringBoot定时任务实现Oracle和mysql数据同步
实现mysql 每天定时自动给数据库表追加分区,包含存储计划和存储过程
windows定时任务备份mysql数据库脚本
数据库定时任务执行脚本,数据库脚本,定时任务,为了避免写大量的Java代码和减轻应用服务器压力
假设前提:每天晚上10点到早上5点,每10分钟定时执行存储过程。 实现方式: 第一种是利用Mysql本身实现,制定event定时任务,可以借助Navicat For Mysql或其他数据库开发工具去做; 第二种实现方式是利用linux的定时...
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
mysql中通过执行命令导出指定表中指定的数据,欢迎下载.
生成sql文件备份和还原,经过本人测试,可以使用。实现定时功能
analyData这是一个java定时任务,定时调用mysql的存储过程
Quartz定时任务持久化数据表 ,mysql数据库,方便动态配置定时任务,各字段都有注释,简单的crud即可使用
3、指定A机器的db1数据库和B机器的db2数据库,就会把db1的表结构同步到db2,并且不删除db2的旧数据 4、功能类似于navicat的表结构同步,只是方便加入计划任务中 5、同步包括删除多余表,添加新表,同步表字段,同步...
mysql的存储过程 删除数据库所有表的存储过程
用存储过程实现了MySQL数据库分区表的自动创建和自动删除功能。亲测有效。希望有用。
由于项目需要,每个月的历史存量数据需要进行一个归档和备份操作,以及一些日志表需要进行一个明细字段清除,让mysql数据库磁盘节省空间。则需要一些定时任务来定时清理这些数据。 2|0技术选型 Java 可以基于...
主要介绍了mysql定时任务(event事件)实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在linux下通过shell指令实现按照用户指定的日期删除mysql中的表数据,不想收积分的,但是它最低收一分
定时从远程或本地服务器备份sql, 附件文件包括定时备份bat脚本,和计划任务的创建
本软件Mysql定时备份器,目前为beta v1.0版(测试版),基于JAVA编写,运行时需JVM1.5版本以上支持.可以帮助windows环境下的mysql用户实现自动备份功能.分完全备份和增量备份,可立即执行和定期执行.点击'完全备份'和'增量...
springmvc+spring+mysql+maven定时任务
mysql数据库全文查找,查询所有数据库中包含指定字符的数据。 一、支持功能: 1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定...