这个专题主要讲information_ schema数据库下的一些表

如无特殊说明数据库版本为MySQL 5.7.26

1. EVENTS

该表提供有关event相关的信息,event在MySQL中为任务计划,即按照一定的频率执行一段SQL

相当于Oracle的JOB和Scheduler

该表不是标准的INFORMATION_SCHEMA表

有如下栏位

  • EVENT_CATALOG 包含事件的所属的目录的名称,该值总是def
  • EVENT_SCHEMA 时间所属的数据库名称
  • EVENT_NAME 时间名称
  • DEFINER 事件的创建者,以'user_name'@'host_name'  格式
  • TIME_ZONE 事件执行的时区,默认为SYSTEM,即操作系统使用的时区
  • EVENT_BODY 事件DO字句用的语言,总是为SQL
  • EVENT_DEFINITION 事件需要执行的语句
  • EVENT_TYPE 事件重复的类型,总是ONE TIME(执行一次)或者RECURRING(重复执行)
  • EXECUTE_AT 这个下面介绍
  • INTERVAL_VALUE 如果是重复执行的,则为两次执行的间隔,如果是一次性的,则为NULL
  • INTERVAL_FIELD 时间两次执行之间建个的时间单位,如果是一次性的,则为NULL
  • SQL_MODE EVENT执行时用的SQL_MODE
  • STARTS 重复性事件的开始时间,以datetime格式,如果未定义则为NULL,如果是一次性的也为NULL
  • ENDS 重复性事件的结束时间,以datetime格式,如果未定义则为NULL
  • STATUS event的状态,有 ENABLED, DISABLED, or SLAVESIDE_DISABLED三个值,其中SLAVESIDE_DISABLED代表在slave端不执行
  • ON_COMPLETION 两种值PRESERVE or NOT PRESERVE
  • CREATED event的创建时间,timestamp类型
  • LAST_ALTERED 代表event的修改时间,是timestamp类型,如果从未修改过,则该值created时间一致
  • LAST_EXECUTED event的上从执行时间,为datetime类型,如果从未执行过,则为NULL
  • EVENT_COMMENT event的注释,如果没有则为空
  • ORIGINATOR event所在数据库的server id
  • CHARACTER_SET_CLIENT event建立时session级别的character_set_client 值
  • COLLATION_CONNECTION event建立时session级别的collation_connection 值
  • DATABASE_COLLATION 数据的collation值

2. 实际截图

首先我们在test数据库新建一个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 * FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'e_daily' AND EVENT_SCHEMA = 'test'\G
Image.png

或者

SHOW EVENTS from  test  like 'e_daily'\G
Image_2.png

信息并不是所有栏位的值

3. 参考链接

https://dev.mysql.com/doc/refman/5.7/en/events-table.html