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