Читаем MySQL: руководство профессионала полностью

Хотя ON и OFF имеет числовые эквиваленты, значение, отображаемое для event_scheduler вызовом SELECT или SHOW VARIABLES всегда OFF, ON или DISABLED. Значение DISABLED не имеет никакого числового эквивалента. По этой причине ON и OFF обычно предпочитаются 1 и 0 при установке этой переменной.

Обратите внимание, что делая попытку устанавливать event_scheduler без того, чтобы определять ее как глобальную переменную, вы получите ошибку:

mysql< SET @@event_scheduler = OFF;

ERROR 1229 (HY000): Variable 'event_scheduler' is a

GLOBAL variable and should be set with SET GLOBAL

Важно: нельзя включать или выключать планировщик, если сервер работает. То есть, Вы можете изменять значение event_scheduler на DISABLED или с DISABLED на одно из других разрешенных значений для этой опции только, когда сервер остановлен. Попытка это сделать, когда он выполняется, вызовет сбой с ошибкой.

Чтобы отключить планировщик событий, используйте один из следующих двух методов:

Как опция командной строки при старте сервера:--event-scheduler=DISABLED

В файле конфигурации (my.cnf, или my.ini в Windows) включите строку (например, в раздел [mysqld]):

event_scheduler=DISABLED

Чтобы включить планировщик, перезапустите сервер без параметра --event-scheduler=DISABLED или после удаления (или комментирования) строки, содержащей event_scheduler=DISABLED в файле конфигурации. В качестве альтернативы Вы можете использовать ON (или 1), либо OFF (или 0) вместо значения DISABLED при старте сервера.

Обратите внимание: Вы можете выдавать инструкции манипулирования событиями, когда event_scheduler установлен в DISABLED. Никакие предупреждения или ошибки не будут сгенерированы в таких случаях (если инструкции самостоятельно допустимы). Однако, планируемые события не могут выполняться, пока эта переменная не установлена в ON (или 1). Как только это было выполнено, поток планировщика выполняет все события, чьи планирующие условия удовлетворены.

В MySQL 5.1.11 event_scheduler вела себя следующим образом: эта переменная могла брать одно из значений 0 (или OFF), 1 (или ON) или 2. Установка в 0 отключала планировщик. Установка в 1 запускала планировщик и выполняла планируемые события. В этом состоянии поток планировщика события, казалось, бездействовала когда просматривалась с SHOW PROCESSLIST. Когда event_scheduler была установлена в 2 (что и было значением по умолчанию), планировщик событий был приостановлен: поток планировщика событий выполнялся и мог быть найден в выводе SHOW PROCESSLIST (где в столбце State отображалось Suspended), но не выполнялись никакие планируемые события. Значение event_scheduler могло быть изменено только между 1 (или ON) и 2 во время работы сервера. Установка в OFF или изменение из OFF) требовала рестарта сервера.

До MySQL 5.1.11 event_scheduler мог брать только одно из 2 значений: 0|OFF (по умолчанию) или 1|ON без перезапуска сервера.

MySQL 5.1.6 и позже обеспечивает таблицу EVENTS в базе данных INFORMATION_SCHEMA. Эта таблица может делать запрос к информации относительно планируемых событий, которые были определены на сервере.

<p id="aRan_9708213563">8.2. Синтаксис планировщика событий</p>

MySQL 5.1.6 и позже обеспечивает несколько инструкций SQL для работы с планируемыми событиями:

Новые события определены, используя инструкцию CREATE EVENT.

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

Когда планируемое событие больше не требуется, оно может быть удалено с сервера использованием инструкции DROP EVENT. Сохраняется ли событие после конца плана, также зависит от предложения ON COMPLETION, если оно имеется.

Событие может быть удалено любым пользователем, имеющим привилегию EVENT для базы данных, в которой событие определено. До MySQL 5.12 пользователь, который не создавал это событие, требовал привилегий на таблице mysql.event.

<p>8.2.1. Синтаксис CREATE EVENT</p>

CREATE EVENT [IF NOT EXISTS] event_name

ON SCHEDULE schedule

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

[COMMENT 'comment']

DO sql_statement;

schedule:

AT timestamp [+ INTERVAL interval]

| EVERY interval [STARTS timestamp]

[ENDS timestamp]

interval:

quantity {YEAR | QUARTER | MONTH | DAY | HOUR |

MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR |

DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND |

MINUTE_SECOND}

Эта инструкция создает и планирует новое событие. Минимальные требования для допустимой инструкции CREATE EVENT следующие:

Ключевые слова CREATE EVENT плюс имя события, которое уникально идентифицирует событие в текущей схеме.

До MySQL 5.1.12 имя события должно было быть уникальным только среди событий, созданных тем же самым пользователем в этой базе данных.

Предложение ON SCHEDULE, которое определяет, когда и как часто событие выполняется.

Предложение DO, которое содержит инструкцию SQL, которая будет выполнена событием.

Это пример минимальной инструкцииCREATE EVENT myevent

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT