原文链接:http://www.javaarch.net/jiagoushi/751.htm
MySQL Events详解
MySQL Events是能够在特定时间执行的query语句集合。
首先要开启mysql events
SHOW VARIABLES LIKE "EVENT_SCHEDULER";
SET GLOBAL event_scheduler=ON;
通过执行SHOW VARIABLES LIKE 'EVENT_SCHEDULER'; 确定已经开启,正在执行的events可以通过 SHOW PROCESSLIST;查看。
创建一个event
DELIMITER $$
CREATE EVENT first_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE
DO
BEGIN
UPDATE table_name SET field_name = field_name + 1;
END;
$$;
通过SHOW EVENTS;查看在BEGIN 和END之间可以添加多个query语句,用;分隔。上面这个event只会执行一次,然后就被删除。如果我们使用ON COMPLETION PRESERVE,则event不会被删除。下面这个会每隔5天执行一次。
DELIMITER $$
CREATE EVENT first_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE
ON COMPLETION PRESERVE
DO
BEGIN
UPDATE table_name SET field_name = field_name + 1;
END;
$$;
我们可以通过ALTER EVENT来编辑一个event,
通过arter来重命名一个event
ALTER EVENT first_event
RENAME TO first_event_edited;
通过drop删除一个event
DROP EVENT first_event;