MySQL任务调度
来源:互联网 发布:数据挖掘 十大算法 bp 编辑:程序博客网 时间:2024/05/22 09:39
MySQL 5.1 引入的时间调度器可以作为定时任务调度器,取代系统的cron调度,调度时间可以精确到秒,实时性好。
开启事件调度器
首先查看是否开启了事件调度器: show variables like "event_scheduler";
或 SELECT @@event_scheduler;
。
开启事件调度器: SET GLOBAL event_scheduler = ON;
,这个命令需要具有 SUPER 权限才能执行,可以用 root 用户来执行,说明是作用在整个数据库服务上的,而不单是某个数据库实例。
查看事件的执行情况
SELECT * FROM information_schema.EVENTS;
创建事件
语法:
CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] -- 执行完后是否保留事件,默认为NOT PRESERVE,也就是非周期性任务执行完后删除。 [ENABLE | DISABLE] -- 开启或关闭事件 [COMMENT 'comment'] -- 事件说明 DO sql_statement; -- 要执行的 sql 语句schedule: AT TIMESTAMP [+INTERVAL INTERVAL_VAL]-- AT 用于在指定时间点执行一次。 EVERY INTERVAL [STARTS TIMESTAMP] [END TIMESTAMP]-- EVERY 用于每隔指定的时间重复执行。-- 如果没有指定开始时间和结束时间,那么默认的开始时间就是当前结束时间,没有结束时间。INTERVAL_VAL:quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND} -- quantity 是数值,花括号里的是的时间单位。
修改事件
ALTER EVENT event_name [ON SCHEDULE schedule] -- 设定调度时间 [RENAME TO new_event_name] -- 重命名为另一个名字 [ON COMPLETION [NOT] PRESERVE] -- 执行完后是否保留事件,默认不保留 [COMMENT 'comment'] -- 事件说明 [ENABLE | DISABLE] -- 开启或关闭事件 [DO sql_statement] -- 要执行的 sql 语句
删除事件
DROP EVENT eventName;DROP EVENT IF EXISTS eventName;
代码示例
-- 创建一个测试表CREATE TABLE aaa (timeline TIMESTAMP)-- 每隔一秒钟插入一条记录,这里没有指定时间范围,就从当前时间开始一直重复调度。CREATE EVENT e_test ON SCHEDULE EVERY 1 SECOND DO INSERT INTO aaa VALUES(CURRENT_TIMESTAMP);-- 创建事件但不调度执行CREATE EVENT e_test ON SCHEDULE EVERY 1 SECOND DISABLE COMMENT 'not enabled, just for later use .' DO INSERT INTO aaa VALUES(CURRENT_TIMESTAMP);-- 修改事件的调度间隔,并使能被调度。ALTER EVENT e_test ON SCHEDULE EVERY 10 SECOND ENABLE;-- 在指定时间点执行一次CREATE EVENT e_test ON SCHEDULE AT TIMESTAMP '2014-01-27 23:59:50' DO TRUNCATE TABLE aaa;-- 在指定时间点执行一次,执行完后保留事件。CREATE EVENT e_test ON SCHEDULE AT TIMESTAMP '2014-01-27 23:59:50' ON COMPLETION PRESERVE DO TRUNCATE TABLE aaa;-- 从某个时间范围内周期性地执行任务CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY STARTS TIMESTAMP '2014-01-27 23:59:50' ENDS TIMESTAMP '2014-02-27 23:59:50' DO TRUNCATE TABLE aaa;-- 删除事件DROP EVENT e_test;-- 如果存在,删除事件。DROP EVENT IF EXISTS e_test;
阅读全文
0 0
- mysql 任务调度
- mysql 定时任务调度
- mysql任务调度
- MySQL任务调度
- Mysql任务调度(Event)
- Mysql任务调度(Event)
- MySQL任务调度基础学习
- 调度任务
- 任务调度
- 任务调度
- 任务调度
- 任务调度
- 任务调度
- 任务调度
- 任务调度
- 任务调度
- 任务调度
- 任务调度
- 自定义Session管理器
- javascript中 \"||\" 和\"&&\" 的灵活运用
- pager-taglib2.0中文传参乱码问题
- javascript 截取字符串
- js 文章、通知、公告、新闻等发布时间计算
- MySQL任务调度
- MySQL存储过程
- MySQL任务调度和存储过程实现实时修改表中字段值
- tomcat作为windows服务自动启动问题
- Mongo查询
- 新手python成长过程
- appcan执行窗口事件
- async.js 实现js函数执行顺序
- jquery.lazyload.js 实现图片懒加载