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