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


9.20. Таблица INFORMATION_SCHEMA EVENTS

Таблица 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.

На это использование универсального времени нельзя положиться в прикладных программах, поскольку ожидается изменить на сервере местное время (Глюк #16420).









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

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