MySql定时任务event

2021-01-05 15:58:41

MySql内部可以执行定时任务,类似linux的crontab,比crontab更好的是定时可以精确到秒级。

需要MySql开启任务服务,查看是否开启用下面的语句:

SHOW VARIABLES LIKE ‘event_scheduler’

开启用下面的语句:

SET GLOBAL event_scheduler = 1;

关闭用下面的语句:

SET GLOBAL event_scheduler = 0;

语法:

CREATE EVENT [IFNOT EXISTS] event_name

   ONSCHEDULE schedule
   [ONCOMPLETION [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}


比如每隔一分钟执行插入当前时间戳操作:

CREATE EVENT EVENT_NAME
ON SCHEDULE EVERY 1 MINUTE
DO insert into table_name values(unix_timestamp(now());