创建好事件后,用户可以通过以下 3 种方式来查看事件的状态信息:
查看 mysql.event
查看 information_schema.events
切换到相应的数据库后执行 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
事件创建时的数据库字符集校验规则