Spec-Zone .ru
спецификации, руководства, описания, API

13.1.2. ALTER EVENT Синтаксис

ALTER    [DEFINER = { user | CURRENT_USER }]    EVENT event_name    [ON SCHEDULE schedule]    [ON COMPLETION [NOT] PRESERVE]    [RENAME TO new_event_name]    [ENABLE | DISABLE | DISABLE ON SLAVE]    [COMMENT 'comment']    [DO event_body]

ALTER EVENT оператор изменяется один или больше характеристик существующего события без потребности отбросить и воссоздать это. Синтаксис для каждого из DEFINER, ON SCHEDULE, ON COMPLETION, COMMENT, ENABLE / DISABLE, и DO пункты являются точно тем же самым как тогда, когда использующийся с CREATE EVENT. (См. Раздел 13.1.9,"CREATE EVENT Синтаксис".)

Любой пользователь может изменить событие, определенное на базе данных, для которой тот пользователь имеет EVENT полномочие. Когда пользователь выполняет успешное ALTER EVENT оператор, тот пользователь становится устройством определения для события, на которое влияют.

ALTER EVENT работы только с существующим событием:

mysql> ALTER EVENT no_such_event      >     ON SCHEDULE      >       EVERY
        '2:3' DAY_HOUR;ERROR 1517 (HY000): Unknown event 'no_such_event'

В каждом из следующих примеров предположите что названное событие myevent определяется как показано здесь:

CREATE EVENT myevent    ON SCHEDULE      EVERY 6 HOUR    COMMENT 'A sample comment.'    DO      UPDATE myschema.mytable SET mycol = mycol + 1;

Следующий оператор изменяет расписание для myevent от однажды каждые шесть часов запускаясь сразу к однажды каждые двенадцать часов, запуская четыре часа со времени выполняется оператор:

ALTER EVENT myevent    ON SCHEDULE      EVERY 12 HOUR    STARTS CURRENT_TIMESTAMP + INTERVAL 4 HOUR;

Возможно изменить многократные характеристики события в единственном операторе. Этот пример изменяет SQL-оператор, выполняемый myevent к тому, который удаляет все записи из mytable; это также изменяет расписание для события так, что, это выполняется однажды, спустя один день после этого ALTER EVENT оператор выполняется.

ALTER EVENT myevent    ON SCHEDULE      AT CURRENT_TIMESTAMP + INTERVAL 1 DAY    DO      TRUNCATE TABLE myschema.mytable;

Определите опции в ALTER EVENT оператор только для тех характеристик, которые Вы хотите изменить; опущенные опции сохраняют свои существующие значения. Это включает любые значения по умолчанию для CREATE EVENT такой как ENABLE.

Отключить myevent, используйте это ALTER EVENT оператор:

ALTER EVENT myevent    DISABLE;

ON SCHEDULE пункт может использовать выражения, включающие встроенные функции MySQL и пользовательские переменные, чтобы получить любой из timestamp или interval значения, которые это содержит. Невозможно использовать сохраненные подпрограммы или определяемые пользователем функции в таких выражениях, и невозможно использовать ссылки на таблицу; однако, можно использовать SELECT FROM DUAL. Это - истина для обоих ALTER EVENT и CREATE EVENT операторы. Ссылки на сохраненные подпрограммы, определяемые пользователем функции, и таблицы в таких случаях определенно не разрешаются, и сбой с ошибкой (см. Ошибку #22830).

Хотя ALTER EVENT оператор, который содержит другого ALTER EVENT оператор в DO пункт, кажется, успешно выполняется, когда сервер пытается выполнить получающееся запланированное событие, сбои выполнения с ошибкой.

Чтобы переименовать событие, используйте ALTER EVENT оператор RENAME TO пункт. Этот оператор переименовывает событие myevent к yourevent:

ALTER EVENT myevent    RENAME TO yourevent;

Можно также переместить событие в различное использование базы данных ALTER EVENT ... RENAME TO ... и db_name.event_name нотация, как показано здесь:

ALTER EVENT olddb.myevent    RENAME TO newdb.myevent;

Чтобы выполнить предыдущий оператор, пользователь, выполняющий это, должен иметь EVENT полномочие на обоих olddb и newdb базы данных.

Отметить

Есть нет RENAME EVENT оператор.

Значение DISABLE ON SLAVE используется на ведомом устройстве репликации вместо ENABLED или DISABLED чтобы указать на событие, которое создавалось на ведущем устройстве и тиражировалось к ведомому устройству, но это не выполняется на ведомом устройстве. Обычно, DISABLE ON SLAVE устанавливается автоматически как требуется; однако, есть некоторые обстоятельства, при которых можно хотеть или должны изменить это вручную. См. Раздел 16.4.1.11, "Репликация Вызванных Функций", для получения дополнительной информации.