Mysql event
基本语法:
CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO event_body; schedule: AT timestamp [+ INTERVAL interval] ... | EVERY interval [STARTS timestamp [+ INTERVAL interval] ...] [ENDS timestamp [+ INTERVAL interval] ...] interval: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
event可以指定某个时间执行某件事
create event eventTest on SCHEDULE at CURRENT_TIMESTAMP + INTERVAL 2 second do insert into testA values(2);
间隔一段时间执行
create event eventTest on SCHEDULE every 2 second do insert into testA values(2);
注:对于间隔一天,修改系统时间是不会触发event执行,网上说event不是定点执行,而是根据算距下一个时间点时间长执行的。不过有时修改系统时间,在不确定的时间里会执行一次event,如第一次执行时间是12:50:50,修改系统时间,第二天的12:50:50不一定会执行,但有时候会在12:55:23执行,有时也不会,暂时没法确定是啥原因,如知悉,能否留言。
而间隔几分钟或者几秒的,则会按时执行。估计是算时间长执行的。
删除event
drop event if exists eventTest;
查看event是否开启(默认是OFF)
Select @@event_scheduler;
设置event开启
SET GLOBAL event_scheduler = on;
Mysql重启后event事件会不执行,修改安装目录下的my.ini文件,添加
event_scheduler = 1