首页 > 编程笔记 > MySQL笔记

MySQL查看事件

创建好事件后,用户可以通过以下 3 种方式来查看事件的状态信息:
  1. 查看 mysql.event
  2. 查看 information_schema.events
  3. 切换到相应的数据库后执行 SHOW EVENTS;

以上方式的运行结果基本一致,这里就不一一演示了。下面查看 information_schema.events 表中的事件状态信息。SQL 语句和运行结果如下:
mysql> SELECT * FROM information_schema.events limit 1\G
*************************** 1. row ***************************
       EVENT_CATALOG: def
        EVENT_SCHEMA: test
          EVENT_NAME: e_test
             DEFINER: root@localhost
           TIME_ZONE: SYSTEM
          EVENT_BODY: SQL
    EVENT_DEFINITION: INSERT INTO tb_eventtest(user,createtime)VALUES('MySQL',NOW())
          EVENT_TYPE: RECURRING
          EXECUTE_AT: NULL
      INTERVAL_VALUE: 5
      INTERVAL_FIELD: SECOND
            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: 2020-05-21 10:41:39
                ENDS: NULL
              STATUS: ENABLED
       ON_COMPLETION: PRESERVE
             CREATED: 2020-05-21 10:41:39
        LAST_ALTERED: 2020-05-21 10:41:39
       LAST_EXECUTED: 2020-05-21 12:38:54
       EVENT_COMMENT:
          ORIGINATOR: 1
CHARACTER_SET_CLIENT: gbk
COLLATION_CONNECTION: gbk_chinese_ci
  DATABASE_COLLATION: utf8_unicode_ci
1 row in set (0.08 sec)

以上参数说明如下表所示:
参数名 说明
EVENT_CATALOG 事件存放目录,一般情况下,值为 def,不建议修改
EVENT_SCHEMA 事件所在的数据库
EVENT_NAME 事件名称
DEFINER 事件的定义者
TIME_ZONE 事件使用的时区,默认是 SYSTEM,不建议修改
EVENT_BODY 一般情况下,值为 SQL,不建议修改
EVENT_DEFINITION 该事件的内容,可以是具体的 INSERT 等 SQL,也可以是一个调用的存储过程
EVENT_TYPE 事件类型,这个参数比较重要,在定义时指定
有两个值:RECURRING 和 ONE TIME
RECURRING 表示只要符合条件就会重复执行,RECURRING 类型的事件一般为 NULL,表示该事件的预计执行时间
ONE TIME 只会调用 EXECUTE_AT,针对 one-time 类型的事件有效
INTERVAL_VALUE 针对 RECURRING 类型的事件有效,表示执行间隔长度
INTERVAL_FIELD 针对 RECURRING 类型的事件有效,表示执行间隔的单位,一般是 SECOND,DAY 等值,可参考创建语法
SQL_MODE 当前事件采用的 SQL_MODE
STARTS 针对 RECURRING 类型的事件有效,表示一个事件从哪个时间点开始执行,和 one-time 的 EXECUTE_AT 功能类似。
为 NULL 时表示一符合条件就开始执行
ENDS 针对 RECURRING 类型的事件有效,表示一个事件到了哪个时间点后不再执行,如果为 NULL 就是永不停止
STATUS 一般有三个值,ENABLED、DISABLED 和 SLAVESIDE_DISABLED
ON_COMPLETION 只有两个值,PRESERVE 和 NOT PRESERVE
CREATED 事件的创建时间
LAST_ALTERED 事件最近一次被修改的时间
LAST_EXECUTED 事件最近一次执行的时间,如果为 NULL 表示从未执行过
EVENT_COMMENT 事件的注释信息
ORIGINATOR 当前事件创建时的 server-id,用于主从上的处理,比如 SLAVESIDE_DISABLED
CHARACTER_SET_CLIENT 事件创建时的客户端字符集
COLLATION_CONNECTION 事件创建时的连接字符校验规则
DATABASE_COLLATION 事件创建时的数据库字符集校验规则

所有教程

优秀文章