28.3.14 Таблица INFORMATION_SCHEMA EVENTS
Таблица EVENTS предоставляет информацию о событиях Event Manager, которые обсуждаются в разделе 27.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_MODESQL-режим, действующий при создании или изменении события и при выполнении события. Допустимые значения см. в разделе 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.4.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.19, «Оператор 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.