24.3.8 Таблица INFORMATION_SCHEMA EVENTS
Таблица EVENTS предоставляет информацию о событиях Event Manager, которые обсуждаются в Разделе 23.4, «Использование планировщика событий».
В таблице EVENTS содержатся следующие столбцы:
-
EVENT_CATALOGИмя каталога, к которому принадлежит событие. Это значение всегда
def. -
EVENT_SCHEMAИмя схемы (базы данных), к которой принадлежит событие.
-
EVENT_NAMEИмя события.
-
DEFINERИмя пользователя, указанное в условии
DEFINER(часто это пользователь, создавший событие), в формате'.user_name'@'host_name' -
TIME_ZONEЧасовой пояс события, который используется для планирования события и действует во время его выполнения. Значение по умолчанию —
SYSTEM. -
EVENT_BODYЯзык, используемый для инструкций в условии
DOсобытия. Значение всегда равноSQL. -
EVENT_DEFINITIONТекст SQL-инструкции, составляющей условие
DOсобытия; другими словами, инструкция, выполняемая этим событием. -
EVENT_TYPEТип повторения события, либо
ONE TIME(однократное) либоRECURRING(повторяющееся). -
EXECUTE_ATДля однократного события — это значение
DATETIME, указанное в условииATинструкцииCREATE EVENTдля создания события или последней инструкцииALTER EVENTдля изменения события. Значение в этом столбце отражает добавление или вычитание любого значенияINTERVAL, включённого в условиеATсобытия. Например, если событие создано с помощьюON SCHEDULE AT CURRENT_TIMESTAMP + '1:6' DAY_HOUR, а дата создания — 2018-02-09 14:05:30, значение в этом столбце будет'2018-02-10 20:05:30'. Если время события определяется условиемEVERYвместо условияAT(то есть событие повторяющееся), значение этого столбца равноNULL. -
INTERVAL_VALUEДля повторяющегося события — количество интервалов ожидания между выполнениями события. Для однократного события значение всегда равно
NULL. -
INTERVAL_FIELDЕдиницы измерения интервала ожидания повторяющегося события перед повторением. Для однократного события значение всегда равно
NULL. -
SQL_MODEРежим SQL, действующий при создании или изменении события и при его выполнении. Допустимые значения см. в Разделе 5.1.10, «Режимы SQL сервера».
-
STARTSДата и время начала повторяющегося события. Отображается как значение
DATETIMEи равноNULL, если для события не определены дата и время начала. Для однократного события этот столбец всегда равенNULL. Для повторяющегося события, определение которого включает условиеSTARTS, этот столбец содержит соответствующее значениеDATETIME. Как и в столбцеEXECUTE_AT, это значение учитывает выражения. Если нет условияSTARTS, влияющего на время события, этот столбец равенNULL. -
ENDSДля повторяющегося события, определение которого включает условие
ENDS, этот столбец содержит соответствующее значениеDATETIME. Как и в столбцеEXECUTE_AT, это значение учитывает выражения. Если нет условияENDS, влияющего на время события, этот столбец равенNULL. -
STATUSСтатус события. Одно из значений
ENABLED,DISABLEDилиSLAVESIDE_DISABLED.SLAVESIDE_DISABLEDуказывает, что создание события произошло на другом сервере MySQL, работающем в качестве источника репликации, и было реплицировано на текущий сервер MySQL, работающий в качестве реплики, но событие в данный момент не выполняется на реплике. Более подробная информация приведена в Разделе 16.4.1.16, «Репликация вызываемых функций». -
ON_COMPLETIONОдно из двух значений
PRESERVEилиNOT PRESERVE. -
CREATEDДата и время создания события. Это значение типа
TIMESTAMP. -
LAST_ALTEREDДата и время последнего изменения события. Это значение типа
TIMESTAMP. Если событие не изменялось с момента создания, это значение совпадает со значением в столбцеCREATED. -
LAST_EXECUTEDДата и время последнего выполнения события. Это значение типа
DATETIME. Если событие никогда не выполнялось, этот столбец равенNULL.LAST_EXECUTEDуказывает, когда событие началось. В результате столбецENDSникогда не меньшеLAST_EXECUTED. -
EVENT_COMMENTТекст комментария, если он есть у события. В противном случае значение пустое.
-
ORIGINATORИдентификатор сервера MySQL, на котором было создано событие; используется при репликации. Это значение может быть обновлено оператором
ALTER EVENTдо идентификатора сервера, на котором выполняется данный оператор, если он выполняется на сервере-источнике репликации. Значение по умолчанию — 0. -
CHARACTER_SET_CLIENTЗначение системной переменной
character_set_clientв момент создания события. -
COLLATION_CONNECTIONЗначение системной переменной
collation_connectionв момент создания события. -
DATABASE_COLLATIONКоллирование базы данных, с которой связано событие.
Примечания
EVENTS— это нестандартная таблицаINFORMATION_SCHEMA.Временные значения в таблице
EVENTSотображаются с использованием часового пояса события, текущего часового пояса сеанса или UTC, как описано в Разделе 23.4.4, «Метаданные событий».Дополнительную информацию о
SLAVESIDE_DISABLEDи столбцеORIGINATORсм. в Разделе 16.4.1.16, «Репликация вызываемых функций».
Пример
Предположим, что пользователь 'jon'@'ghidora' создаёт событие с именем e_daily, а затем изменяет его несколько минут спустя с помощью инструкции ALTER
EVENT, как показано здесь:
DELIMITER |
CREATE EVENT e_daily
ON SCHEDULE
EVERY 1 DAY
COMMENT 'Saves total number of sessions then clears the table each day'
DO
BEGIN
INSERT INTO site_activity.totals (time, total)
SELECT CURRENT_TIMESTAMP, COUNT(*)
FROM site_activity.sessions;
DELETE FROM site_activity.sessions;
END |
DELIMITER ;
ALTER EVENT e_daily
ENABLE;
(Обратите внимание, что комментарии могут занимать несколько строк.)
Затем этот пользователь может выполнить следующую инструкцию SELECT и получить указанный вывод:
mysql> SELECT * FROM INFORMATION_SCHEMA.EVENTS
WHERE EVENT_NAME = 'e_daily'
AND EVENT_SCHEMA = 'myschema'\G
*************************** 1. row ***************************
EVENT_CATALOG: def
EVENT_SCHEMA: myschema
EVENT_NAME: e_daily
DEFINER: jon@ghidora
TIME_ZONE: SYSTEM
EVENT_BODY: SQL
EVENT_DEFINITION: BEGIN
INSERT INTO site_activity.totals (time, 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: DAY
SQL_MODE: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
STARTS: 2018-08-08 11:06:34
ENDS: NULL
STATUS: ENABLED
ON_COMPLETION: NOT PRESERVE
CREATED: 2018-08-08 11:06:34
LAST_ALTERED: 2018-08-08 11:06:34
LAST_EXECUTED: 2018-08-08 16:06:34
EVENT_COMMENT: Saves total number of sessions then clears the
table each day
ORIGINATOR: 1
CHARACTER_SET_CLIENT: utf8
COLLATION_CONNECTION: utf8_general_ci
DATABASE_COLLATION: latin1_swedish_ci
Информация о событиях также доступна с помощью инструкции SHOW EVENTS. См. Раздел 13.7.5.18, «Инструкция SHOW EVENTS». Следующие инструкции эквивалентны:
SELECT
EVENT_SCHEMA, EVENT_NAME, DEFINER, TIME_ZONE, EVENT_TYPE, EXECUTE_AT,
INTERVAL_VALUE, INTERVAL_FIELD, STARTS, ENDS, STATUS, ORIGINATOR,
CHARACTER_SET_CLIENT, COLLATION_CONNECTION, DATABASE_COLLATION
FROM INFORMATION_SCHEMA.EVENTS
WHERE table_schema = 'db_name'
[AND column_name LIKE 'wild']
SHOW EVENTS
[FROM db_name]
[LIKE 'wild']
© 2025 Oracle
Licensed under the GPLv2 License.