Spec-Zone.ru › MySQL 5.7

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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/information-schema-events-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API