mysql定时任务
来源:互联网 发布:德国肥胖比例的数据网 编辑:程序博客网 时间:2024/06/05 20:55
自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次。
1、查看是否开启定时任务:
SHOW VARIABLES LIKE 'event_scheduler';
2、开启定时任务://无需重启
SET GLOBAL event_scheduler = ON;
3、定义定时任务语法:
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
-schedule说明:
AT TIMESTAMP [+ INTERVAL INTERVAL]
| EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
INTERVAL:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
如在定义event的时候有指定ends,那么是否当到期的时候,
假如使用了on completion preserve,这样这个event还是存在的
但是使用on completion not preserve,这样event就自动删除了
4、实例:
1)从现在开始每隔九天定时执行
CREATE
ON SCHEDULE EVERY 9 DAY STARTS NOW()
ON COMPLETION PRESERVE ENABLE
DO
2)每个月的一号凌晨1 点执行
CREATE
ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)
ON COMPLETION PRESERVE ENABLE
DO
3)每个季度一号的凌晨2点执行
CREATE
ON SCHEDULE EVERY 1 QUARTER STARTS DATE_ADD(DATE_ADD(DATE( CONCAT(YEAR(CURDATE()),'-',ELT(QUARTER(CURDATE()),1,4,7,10),'-',1)),INTERVAL 1 QUARTER),INTERVAL 2 HOUR)
ON COMPLETION PRESERVE ENABLE
DO
4)每年1月1号凌晨四点执行
CREATE
ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-',1)),INTERVAL 4 HOUR)
ON COMPLETION PRESERVE ENABLE
DO
5)每秒插入一条数据
CREATE EVENT e_test_insert
ONSCHEDULE EVERY 1 SECOND
DO INSERT INTO test.aaa VALUES(CURRENT_TIMESTAMP);
注:MySQL的event在进行按月,季,年进行自动调用存储过程时,为了测试可以把系统改为年的最后一天,如2010-12-31 23:59:55;
这个Oracle的Job就会把月,季,年存储过程执行一遍。但MySQL改了系统时间了Event也没有定时执行。不知道各位大虾有没有什么好办法?可以解决这个问题。
5、查看定时任务:
select * from information_schema.EVENTS;
6、删除定时任务:(最好加上库名)
DROP EVENT IF EXISTS test.aaa_test;
- Mysql数据库定时任务
- mysql创建定时任务
- MySQL定时任务
- mysql 定时任务编写
- mysql 定时任务
- mysql的定时任务
- MySQL定时计划任务
- mysql定时任务
- mysql定时任务{摘}
- MYSQL 定时任务
- MySQL定时执行任务
- mysql创建定时任务
- mysql创建定时任务
- mysql定时任务
- mysql创建定时任务
- mysql 定时任务
- mysql 定时任务创建
- mysql 定时任务调度
- array_walk 和 foreach, for 的效率的比较
- Linux网络环境下的ARP攻击
- Android中的Selector的用法
- poj 3051 Satellite Photographs dp水题
- Object类
- mysql定时任务
- RowEditing 使用(示例) 按钮显示文字更改
- [wordpress搬家]nginx 走起
- CentOS/Linux 双网卡绑定单一IP,网卡热备
- Nova usually error
- a与a:link、a:visited、a:hover、a:active
- 本报报道工商出击 端掉电游黑店
- [wordpress搬家]nutch的二三事 — 2.2.1版本抓取到mysql中
- java比较器的二种实现方式的区别