28.3.14 Таблица INFORMATION_SCHEMA EVENTS
Таблица EVENTS предоставляет информацию о событиях Event Manager, которые обсуждаются в разделе 27.5, «Использование планировщика событий».
В таблице 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, действующий при создании или изменении события и при его выполнении. Допустимые значения см. в разделе 7.1.11, «Режимы SQL сервера».
-
STARTSДата и время начала повторяющегося события. Отображается как значение
DATETIMEи равноNULL, если для события не определены дата и время начала. Для однократного события этот столбец всегдаNULL. Для повторяющегося события, чья настройка содержит предложениеSTARTS, этот столбец содержит соответствующее значениеDATETIME. Как и для столбцаEXECUTE_AT, это значение решает любые выражения. Если нет предложенияSTARTS, влияющего на время события, этот столбец равенNULL. -
ENDSДля повторяющегося события, чья настройка содержит предложение
ENDS, этот столбец содержит соответствующее значениеDATETIME. Как и для столбцаEXECUTE_AT, это значение решает любые выражения. Если нет предложенияENDS, влияющего на время события, этот столбец равенNULL. -
STATUSСтатус события. Одно из значений:
ENABLED,DISABLEDилиREPLICA_SIDE_DISABLED(до MySQL 8.2.0 это былоSLAVESIDE_DISABLED, теперь устарело).REPLICA_SIDE_DISABLEDуказывает, что создание события произошло на другом сервере MySQL, работающем как источник репликации, и было реплицировано на текущий сервер MySQL, работающий как реплика, но в настоящее время событие не выполняется на реплике. Дополнительную информацию см. в разделе 19.5.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, как описано в разделе 27.5.4, «Метаданные события».Дополнительную информацию о
REPLICA_SIDE_DISABLEDи столбцеORIGINATORсм. в разделе 19.5.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_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: utf8mb4
COLLATION_CONNECTION: utf8mb4_0900_ai_ci
DATABASE_COLLATION: utf8mb4_0900_ai_ci
Информация о событиях также доступна из инструкции SHOW EVENTS. См. раздел 15.7.7.20, «Инструкция 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.