Планировщик событий в MySQL
15 декабря 2011 MySQL 10924 просмотра
Начиная с версии 5.1 в MySQL появился планировщик событий, позволяющий выполнять различные действия в определенное время. Из этого следует то, что часть функционала можно перенести из Cron на сам MySQL.

По умолчанию, планировщик отключен. Включим его в конфиге.
event_scheduler = On
Или при помощи запроса.
SET GLOBAL event_scheduler = On;
Проверить текущее значение переменной можно следующим запросом.
SHOW VARIABLES LIKE 'event_scheduler';
Официальное описание команды CREATE EVENT

Команда не сложная. Указываем название события, точное время выполнения или интервал и сам исполняемый SQL. Создадим простое событие удаления всех неактивных пользователей каждый день.
CREATE EVENT `delete_inactive`
ON SCHEDULE EVERY 1 DAY
DO
DELETE FROM `user` WHERE `active` = 0;
Чтобы посмотреть информацию о событии, нужно выполнить следующий запрос.
SHOW EVENTS LIKE 'delete_inactive';
События можно изменять. Сделаем так, чтобы событие по удалению пользователей запускалось каждый час.
ALTER EVENT `delete_inactive`
ON SCHEDULE EVERY 1 HOUR;