Онлайн библиотека PLAM.RU


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

ALTER EVENT event_name

[ON SCHEDULE schedule]

[RENAME TO new_event_name]

[ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE]

[COMMENT 'comment']

[DO sql_statement]


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

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

В MySQL 5.1.11 и ранее событие могло быть изменено только definer или пользователем, имеющим привилегию SUPER. 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 + 4 HOUR;


Чтобы отключить myevent используйте эту инструкцию ALTER EVENT:


ALTER EVENT myevent DISABLE;


Предложение ON SCHEDULE может использовать выражения, включающие встроенные функции MySQL и переменные пользователя, чтобы получить любой timestamp или interval. Вы не можете использовать сохраненные подпрограммы или определяемые пользователем функции в таких выражениях, и при этом Вы не можете использовать любые ссылки на таблицы, однако, Вы можете использовать SELECT FROM DUAL.

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

Возможно изменить много характеристик события в одиночной инструкции. Этот пример изменяет инструкцию SQL, выполненную myevent, а также план для события:


ALTER TABLE myevent ON SCHEDULE

AT CURRENT_TIMESTAMP + INTERVAL 1 DAY

DO TRUNCATE TABLE myschema.mytable;


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


Предыдущая инструкция переименовывает событие myevent в yourevent. Примечание : не имеется никакой инструкции RENAME EVENT.

Вы можете также переместить событие в другую схему, используя ALTER EVENT … RENAME TO … и запись в формате schema_name.table_name, как показано здесь:


ALTER EVENT oldschema.myevent RENAME TO newschema.myevent;


Чтобы выполнять предыдущую инструкцию, пользователь, выполняющий это, должен иметь привилегию EVENT на схемах oldschema и newschema базы данных.

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









Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное

Все материалы представлены для ознакомления и принадлежат их авторам.