mysql支持定时任务的创建,要求mysql服务器开始定时任务调度。
1. 查看是否开启定时任务执行
SHOW VARIABLES LIKE 'event_scheduler'; // OFF表示没有开启
2. 开启定时任务
SET GLOBAL event_scheduler = ON;
或者
my.cnf文件中添加event_scheduler = 1
3. 编写定时任务
语法规则:
CREATE EVENT [IF NOT EXISTS] event_name // 指定名称
ON SCHEDULE schedule // 指定任务调度规则
ON COMPLETION [NOT] PRESERVE // 指定任务是一次执行,还是多次执行,不给定not的时候是一次执行,默认多次执行
[DISABLE|ENABLE] // 指定任务是否激活,默认激活enable
[COMMENT 'comment'] // 指定注解、注释
DO sqlstament // 指定具体的执行sql
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}
quantity为数字
4.案例
use test;
CREATE TABLE `e_t` (
`timeline` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE EVENT event_insert_et ON SCHEDULE EVERY 1 SECOND DO INSERT INTO test.e_t VALUES(CURRENT_TIMESTAMP);