Таблица EVENTS обеспечивает информацию относительно планируемых событий.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
EVENT_CATALOG
NULL
, MySQL extension
EVENT_SCHEMA
Db
MySQL extension
EVENT_NAME
Name
MySQL extension
DEFINER
Definer
MySQL extension
EVENT_BODY
MySQL extension
EVENT_DEFINITION
MySQL extension
EVENT_TYPE
Type
MySQL extension
EXECUTE_AT
Execute at
MySQL extension
INTERVAL_VALUE
Interval value
MySQL extension
INTERVAL_FIELD
Interval field
MySQL extension
SQL_MODE
MySQL extension
STARTS
Starts
MySQL extension
ENDS
Ends
MySQL extension
STATUS
Status
MySQL extension
ON_COMPLETION
MySQL extension
CREATED
MySQL extension
LAST_ALTERED
MySQL extension
LAST_EXECUTED
MySQL extension
EVENT_COMMENT
MySQL extension
Примечания:
Таблица EVENTS ненормативная. Это было добавлено в MySQL 5.1.6.
EVENT_CATALOG: значение этого столбца всегда NULL.
EVENT_SCHEMA: имя схемы (базы данных), которой это событие принадлежит.
EVENT_NAME: имя события.
DEFINER: пользователь, который создал событие. Всегда отображается в формате 'user_name'@'host_name' .
EVENT_BODY: Язык, используемый для инструкций в предложении DO события, в MySQL 5.1 это всегда SQL. Этот столбец был добавлен в MySQL 5.1.12. Это не должно быть спутано со столбцом того же самого имени (теперь называется EVENT_DEFINITION) в старых версиях MySQL.
EVENT_DEFINITION: текст инструкции SQL, составляющей предложение DO события, другими словами, инструкция, выполненная этим событием.
Обратите внимание: до MySQL 5.1.12 этот столбец назывался EVENT_BODY.
EVENT_TYPE: одно из двух значений ONE TIME или RECURRING.
EXECUTE_AT: для одноразового события это значение the DATETIME, определенное в предложении AT инструкции CREATE EVENT, используемой, чтобы создать событие, или последней инструкции ALTER EVENT, которая изменила событие. Значение, показанное в этом столбце, отражает добавление или вычитание любого значения INTERVAL, включенного в предложение AT события. Например, если событие создано, используя ON SCHEDULE AT CURRENT_TIMESTAMP + '1:6' DAY_HOUR, а событие было создано в 2006-02-09 14:05:30, значение, показанное в этом столбце, будет '2006-02-10 20:05:30'.
Если синхронизация события определена предложением EVERY вместо предложения AT (то есть, если событие повторяется), значение этого столбца NULL.
INTERVAL_VALUE: для многоразовых событий этот столбец содержит числовую часть предложения EVERY события.
Для одноразового события (то есть, события, чья синхронизация определена предложением AT) значение этого столбца NULL.
INTERVAL_FIELD: для многоразовых событий этот столбец содержит модульную часть предложения EVERY, управляя синхронизацией события с префиксом 'INTERVAL_'. Таким образом, этот столбец содержит значение типа 'INTERVAL_YEAR', 'INTERVAL_QUARTER', 'INTERVAL_DAY' или нечто подобное. Для одноразового события значение этого столбца NULL.
SQL_MODE: режим SQL во время создания или изменения события.
STARTS: для многоразовых событий, чье определение включает предложение STARTS, этот столбец содержит соответствующее значение DATETIME. Как и со столбцом EXECUTE_AT, это значение решает любые используемые выражения.
Если не имеется никакого предложения STARTS, воздействующего на синхронизацию события, этот столбец пуст. До MySQL 5.1.8 это содержало NULL в таких случаях.
ENDS: то же самое, но для предложения ENDS.
STATUS: одно из двух значений: ENABLED или DISABLED.
ON_COMPLETION: одно из двух значений: PRESERVE или NOT PRESERVE.
CREATED: дата и время, когда событие было создано. Это значение DATETIME.
LAST_ALTERED: дата и время, когда событие было в последний раз изменено. Это значение DATETIME. Если событие не изменялось, начиная с создания, этот столбец хранит то же самое значение, что и столбец CREATED.
LAST_EXECUTED: дата и время, когда событие в последний раз выполнилось. Значение DATETIME. Если событие никогда не выполнялось, значение этого столбца NULL.
EVENT_COMMENT: текст комментария, если событие его имеет. Если не имеется никакого комментария, значение этого столбца пустая строка.
Пример: предположите, что пользователь jon@ghidora создает событие e_daily, а затем изменяет его через несколько минут, используя инструкцию ALTER EVENT, как показано здесь:
DELIMITER |
CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOUR DISABLE
COMMENT 'Saves total number of sessions and
clears the table once per day.'
DO BEGIN INSERT INTO site_activity.totals (when, total)
SELECT CURRENT_TIMESTAMP, COUNT(*) FROM site_activity.sessions;
DELETE FROM site_activity.sessions;
END |
DELIMITER ;
ALTER EVENT e_daily ENABLED;
Обратите внимание, что комментарии могут охватывать много строк.
Этот пользователь может затем выполнять следующую инструкцию SELECT и получать показанный вывод:
mysql> SELECT * FROM INFORMATION_SCHEMA.EVENTS
> WHERE EVENT_NAME = 'e_daily' AND
> EVENT_SCHEMA = 'myschema'\G
*************************** 1. row ***************************
EVENT_CATALOG: NULL
EVENT_SCHEMA: myschema
EVENT_NAME: e_daily
DEFINER: jon@ghidora
EVENT_BODY: BEGIN
INSERT INTO site_activity.totals (when, total)
SELECT CURRENT_TIMESTAMP, COUNT(*) FROM site_activity.sessions;
DELETE FROM site_activity.sessions;
END
EVENT_TYPE: RECURRING
EXECUTE_AT: NULL
INTERVAL_VALUE: 1
INTERVAL_FIELD: INTERVAL_DAY
SQL_MODE: NULL
STARTS: 2006-02-09 10:41:23
ENDS: NULL
STATUS: ENABLED
ON_COMPLETION: DROP
CREATED: 2006-02-09 14:35:35
LAST_ALTERED: 2006-02-09 14:41:23
LAST_EXECUTED: NULL
EVENT_COMMENT: Saves total number of sessions and
clears the table once per day.
1 row in set (0.50 sec)
Важно: времена, отображаемые столбцами STARTS, ENDS и LAST_EXECUTED в настоящее время даны в терминах универсального времени (GMT или UTC), независимо от установки часового пояса сервера. Это верно и для столбцов starts, ends и last_executed в таблице mysql.event, а также для столбцов Starts и Ends в таблице SHOW [FULL] EVENTS. Зато столбцы CREATED и LAST_ALTERED используют часовой пояс сервера (также, как столбцы created и last_altered в таблице mysql.event), чтобы Вам жизнь медом не казалась.
Например, событие e_daily, показанное ранее, было создано на компьютере в Brisbane, Australia, в 14:35:35 9 февраля 2006. Восточное стандартное время Австралии, которое также может быть выражено как GMT+10.00. Определение события модифицировалось (используя ALTER EVENT) на несколько минут позже, в 14:41:23. Это значения, отображаемые для CREATED и LAST_ALTERED. Событие планируется, чтобы начать выполнять 6 часов спустя, в 20:41:23 в тот же самый лень, по местному времени. Вычитание 10 часов из этого, чтобы получить универсальное время выдает 10:41:23, и это то значение, которое показывается для STARTS.
На это использование универсального времени нельзя положиться в прикладных программах, поскольку ожидается изменить на сервере местное время ().