[DB] - Mysql创建定时任务

时间:2022-08-21 10:10:44

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);