MySQL任务调度基础学习
来源:互联网 发布:迅雷网络校园招聘 编辑:程序博客网 时间:2024/06/03 04:19
最近在一个项目中用到了MySql的任务调度,为方便以后学习,在这简要的梳理复习一下。
MySQL提供了Event Scheduler,可以根据时间调度来运行任务,运行一次或多次。
下面是创建一个事件的完整代码:
CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO event_body;
schedule: AT timestamp [+ INTERVAL interval] … | EVERY interval [STARTS timestamp [+ INTERVAL interval] …] [ENDS timestamp [+ INTERVAL interval] …]
interval: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
具体理论讲解参考:
http://www.tuicool.com/articles/mUnE73V
http://www.jb51.net/article/74891.htm
http://blog.csdn.net/crazylaa/article/details/5368819
下面直接上实例,已测试通过。
创建测试表:
CREATE TABLE `event_test` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT ,`time` time NULL DEFAULT NULL ,PRIMARY KEY (`id`))ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=532ROW_FORMAT=DYNAMIC;
创建一个每个1秒就向event_test表中插入一条数据的事件,代码如下:
CREATE EVENT IF NOT EXISTS e_test_insertON SCHEDULE EVERY 1 SECONDDO INSERT INTO event_test(time) VALUES(CURRENT_TIME);
创建一个1分钟后清空event_test表的事件,代码如下:
CREATE EVENT IF NOT EXISTS e_test_clearON SCHEDULEAT CURRENT_TIMESTAMP + INTERVAL 1 MINUTEDO TRUNCATE TABLE event_test;
创建一个在某段时间内每隔3秒插入一条记录的事件,代码如下:
CREATE EVENT IF NOT EXISTS e_test ON SCHEDULE EVERY 3 SECONDSTARTS '2016-11-28 19:45:00'ENDS '2016-11-28 19:45:00'+ INTERVAL 1 MINUTEON COMPLETION PRESERVEDO INSERT INTO event_test(time) VALUES(CURRENT_TIME);
开启事件,代码如下:
ALTER EVENT e_test ON COMPLETION PRESERVE ENABLE;
关闭事件,代码如下:
ALTER EVENT e_test ON COMPLETION PRESERVE DISABLE;
下面创建一个定时调用存储过程的事件
首先创建存储过程,代码如下:
DELIMITER $$ DROP PROCEDURE IF EXISTS e_test $$ CREATE PROCEDURE e_test() BEGIN INSERT INTO event_test(time) VALUES(CURRENT_TIME);END $$ DELIMITER ;
创建一个事件,每隔1秒自动调用e_test()存储过程
CREATE EVENT IF NOT EXISTS call_e_test ON SCHEDULE EVERY 1 SECOND ON COMPLETION PRESERVE DO CALL e_test();
先总结到这,希望对大家对自己的学习有帮助。。。
0 0
- MySQL任务调度基础学习
- mysql 任务调度
- mysql 定时任务调度
- mysql任务调度
- MySQL任务调度
- live555任务调度学习
- quartz任务调度学习
- linux任务调度学习
- Mysql任务调度(Event)
- Mysql任务调度(Event)
- quartz定时任务调度学习
- 学习笔记_spring任务调度
- Spark的任务调度学习
- linux基础操作----任务调度指令
- 嵌入式系统学习——STM32之UCOS-III任务基础API、时间片轮转调度和系统任务
- Spring学习:使用Spring调度任务
- Spring学习:使用Spring调度任务
- Spring学习:使用Spring调度任务
- Android ImageView 正确使用姿势
- POJ 3904 HDU 5072 容斥原理
- 师哥带着代码走查总结
- 数据结构与算法之——八大排序算法
- 怎么能防止网站被注入eval(base64_decode这种类型的木马?
- MySQL任务调度基础学习
- Red and Black (深度优先搜索 DFS)
- 彻底清除Github上某个文件的历史(针对误上传密码文件等情况)
- 网络请求框架
- Container With Most Water
- unity5.3.4按钮点击场景切换
- 2017中兴校园招聘成都地区笔试题
- Java 字符串与整数的转换
- 大数-乘法