创建好事件后,用户可以通过以下 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
以上参数说明如下表所示:
参数名 说明
- 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 事件创建时的数据库字符集校验规则