Spec-Zone .ru
спецификации, руководства, описания, API
|
MySQL Events является задачами, которые работают согласно расписанию. Поэтому, мы иногда именуем их как запланированные события. Когда Вы создаете событие, Вы создаете именованный
объект базы данных, содержащий один или более SQL-операторов, которые будут выполняться в одном или более равных
интервалах, начинаясь и заканчиваясь в определенной дате и время. Концептуально, это подобно идее Unix crontab
(также известный как "cron задание")
или Windows Task Scheduler.
Запланированные задачи этого типа также иногда известны как "временные триггеры", подразумевая, что они - объекты, которые инициированы течением времени. В то время как это чрезвычайно корректно, мы предпочитаем использовать термин события, чтобы избежать беспорядка с триггерами типа, обсужденного в Разделе 18.3, "Используя Триггеры". События не должны более определенно быть перепутаны с "временными триггерами". Принимая во внимание, что триггер является объектом базы данных, операторы которого выполняются в ответ на определенный тип события, которое происходит на данной таблице, (запланированное) событие является объектом, операторы которого выполняются в ответ на проход интервала требуемого времени.
В то время как нет никакого условия в Стандарте SQL для планирования событий, в других системах баз данных есть прецеденты, и можно заметить некоторые общие черты между этими реализациями и найденным в MySQL Server.
У MySQL Events есть следующие основные функции и свойства:
В MySQL 5.7 событие однозначно определяется его именем и схемой, которой это присваивается.
Событие выполняет определенное действие согласно расписанию. Это действие состоит
из SQL-оператора, который может быть составным оператором в a BEGIN ... END
блокируйте при желании (см. Раздел
13.6, "MySQL Compound-Statement Syntax"). Синхронизация события может быть или одноразовой или текущей. Одноразовое событие
выполняется только один раз. Повторяющееся событие повторяет свое действие в равном интервале, и
расписание для повторяющегося события может быть присвоено определенный день запуска и время, день конца
и время, оба, или ни один. (По умолчанию расписание повторяющегося события начинается, как только оно
создается, и продолжается неопределенно, пока оно не отключается или отбрасывается.)
Если повторяющееся событие не завершается в пределах его интервала планирования, результатом могут
быть многократные экземпляры события, выполняющегося одновременно. Если это - нежелательный, следует
установить механизм, чтобы предотвратить одновременные экземпляры. Например, Вы могли использовать
GET_LOCK()
функция, или строка или табличная блокировка.
Пользователи могут создать, изменить, и отбросить запланированные события, используя SQL-операторы, предназначенные в этих целях. Синтаксически недопустимые операторы создания и модификации события перестали работать с соответствующим сообщением об ошибке. Пользователь может включать операторы в действие события, которые требуют полномочий, которые фактически не имеет пользователь. Оператор создания или модификации события успешно выполняется, но сбои действия события. См. Раздел 18.4.6, "Планировщик События и MySQL Privileges" для деталей.
Многие из свойств события могут быть установлены или изменили SQL-операторы
использования. Эти свойства включают имя события, синхронизацию, персистентность (то есть, сохраняется
ли это после истечения ее расписания), состояние (включил или отключил), действие, которое будет
выполнено, и схема, которой это присваивается. См. Раздел 13.1.2,"ALTER EVENT
Синтаксис".
Устройство определения значения по умолчанию события является пользователем, который создал событие,
если событие не было изменено, когда устройство определения является пользователем, который выпустил
последнее ALTER EVENT
оператор, влияющий на то событие. Событие может быть изменено любым пользователем, имеющим EVENT
полномочие на базе данных, для которой определяется событие. См. Раздел
18.4.6, "Планировщик События и MySQL Privileges".
Оператор действия события может включать большинство SQL-операторов, разрешенных в пределах сохраненных подпрограмм. Для ограничений см. Раздел D.1, "Ограничения на Сохраненные Программы".