Spec-Zone .ru
спецификации, руководства, описания, API
|
ALTER [DEFINER = {user
| CURRENT_USER }] EVENTevent_name
[ON SCHEDULEschedule
] [ON COMPLETION [NOT] PRESERVE] [RENAME TOnew_event_name
] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment
'] [DOevent_body
]
ALTER
EVENT
оператор изменяется один или больше характеристик существующего события без потребности
отбросить и воссоздать это. Синтаксис для каждого из DEFINER
, ON SCHEDULE
, ON COMPLETION
, COMMENT
,
ENABLE
/ DISABLE
, и DO
пункты являются точно тем же самым как тогда, когда использующийся с CREATE EVENT
. (См. Раздел 13.1.11,"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, "Репликация Вызванных Функций",
для получения дополнительной информации.