MySQL5.1.x
版本中引入了一项新特性
EVENT
,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。此功能是对
Oracle
的
Job/Schedule
的模仿,
5.1.X
版本以上才支持。
Event
Scheduler作为一种数据库对象,其增删改的DDL语句与其他对象非常相似,无非CREATE、ALTER、DROP等,创建的基本语法是:
CREATE
EVENT (1)
[IF NOT EXISTS] (2)
event_name (3)
ON SCHEDULE schedule (4)
[ON COMPLETION [NOT] PRESERVE] (5)
[ENABLE | DISABLE]
(6)
[COMMENT 'comment'] (7)
DO
sql_statement (8)
逐条介绍:
(1) 创建Event嘛,这俩关键字当然不能少了
(2) 如果不存在同名的数据库对象才创建
(3) 计划任务的名字。作为数据库对象,都有一个本库内唯一的名字做标识
(4)
计划任务的计划,重点就在这儿。有两个关键字来设定任务的执行计划:AT和EVERY:
AT指定的是一个一次性计划,后面跟着一个时间戳,后续的sql语句将在指定的时间被执行一次;
EVERY指定的是一个周期性计划,在该子句中可以指定从某时间点到某时间点期间,每隔某周期就执行一次该任务。
(5)
任务整个执行完毕后,该计划任务对象是否还在数据库中保留。默认不保留
(6) 有效或失效。默认有效
(7) 真正要执行的语句
例子
1)创建一张表
CREATE
TABLE `aaa` (
`timeline` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`timeline`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8;
2)
创建事件
每秒钟新增一条数据
CREATE EVENT
e_test_insert
ON SCHEDULE EVERY 1 SECOND
DO INSERT INTO test.aaa
VALUES (CURRENT_TIMESTAMP);
这里的时间点可以根据需要自己设定
3)开启事件
ALTER
EVENT e_test_insert ENABLE;
4)关闭事件
ALTER EVENT e_test_insert
DISAVLE;
5)删除事件
DROP EVENT e_test_insert
;
这里建议最好在加上 IF
EXISTS
DROP EVENT IF
EXISTS e_test_insert ;
应用
因at和every不能共用的。
首先查看event是否开启
show variables like '%sche%';
将事件计划开户
set global event_scheduler =1;
每个月1号凌晨3点的事件
create event e5
ON SCHEDULE EVERY 1 MONTH
STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL
DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 3 HOUR) ON COMPLETION
PRESERVE ENABLE
DO
INSERT INTO test.aaa VALUES
(CURRENT_TIMESTAMP);
相关推荐
mysql计划任务教程.zip
MySQL数据库任务驱动式教程(第3版)(微课版)-课程标准.doc.docx
《 MySQL数据库任务驱动式教程》教学课件—01认识数据库.pdf《 MySQL数据库任务驱动式教程》教学课件—01认识数据库.pdf《 MySQL数据库任务驱动式教程》教学课件—01认识数据库.pdf《 MySQL数据库任务驱动式教程》...
mysql每15天定时备份-自动创建计划任务,解压出来修改数据库的配置机、保存路径,执行后,如果是服务器的话,可以去系统的计划任务中配置相关的任务执行时间,不懂可以留言
MySQL数据库任务驱动式教程(第2版)(微课版)-电子教案.rar
mysql5.6任务栏图标(MySQLNotifier).zip
在mysql中我们可以直接进行一些参数设置让它成定时为我们执行一些任务了,这个虽然可以使用windows或者linux中的计划任务实现,但是mysql本身也能完成
本文实例讲述了mysql的计划任务与事件调度。分享给大家供大家参考,具体如下: mysql事件是基于预定义的时间表运行的任务,因此有时它被称为预定事件。mysql事件也被称为“时间触发”,因为它是由时间触发的,而不是...
JAVA、mysql、任务管理系统、毕业设计
mysqlconvert是一款优秀的数据库转换及管理系统,无需专业的知识即可方便的将不同的数据库数据进行转换,access、mssql导入mysql,mysql数据库之间互转。还有强大的数据库备份还原功能、批量替换字符、运行sql语句等...
mysqlconvert是一款优秀的数据库转换及管理系统,无需专业的知识即可方便的将不同的数据库数据进行转换,access、mssql导入mysql,mysql数据库之间互转。还有强大的数据库备份还原功能、批量替换字符、运行sql语句等...
windows下如何定期备份mysql数据库,先写一个脚本文件,然后添加到windows任务计划里执行
附件为两个.bat脚本文件,用于在Windows下备份MySQL数据库,一个是备份数据库文件,另一个是将数据库导出sql脚本。需要自己修改数据库名称,...这两个批处理文件都是可以通过Windows任务计划直接调用的,已经测试过了。
windows定时任务备份mysql数据库脚本
基于ssm+mysql任务发布接收平台设计与实现.docx基于ssm+mysql任务发布接收平台设计与实现.docx基于ssm+mysql任务发布接收平台设计与实现.docx基于ssm+mysql任务发布接收平台设计与实现.docx基于ssm+mysql任务发布...
MySQL数据库应用、设计与管理任务驱动教程(微课版)-课后练习参考答案.pdf
该计划书是西北农林科技大学信息工程学院于10年数据库实习所用。
基于ssm+mysql的任务发布接收平台的实现(本科毕业设计+数据库).zip 基于ssm+mysql的任务发布接收平台的实现(本科毕业设计+数据库).zip 基于ssm+mysql的任务发布接收平台的实现(本科毕业设计+数据库).zip 基于...
掌握MySQL的安装方法,练习MySQL数据库服务器的使用,理解MySQL服务器的组成,掌握MySQL服务器的配置方法。
数据库定时任务执行脚本,数据库脚本,定时任务,为了避免写大量的Java代码和减轻应用服务器压力