数据库原理与应用 第 16 章 · 第四节
课程 › 第 16 章 › 第四节 事件语法 版式
第 16 章 触发器和事件 · 第四节

事件与事件调度器

事件是什么,事件调度器,CREATE EVENT 的语法和时间规则
本 节 知 识 点
  1. 11事件与事件调度器
  2. 12创建事件的语法
11
第 16 章 · 第四节 · 课件第 31、32、33、34、35 页合并重做

事件与事件调度器

事件在指定的时间执行,由事件调度器调用。

16.2 MySQL 事件课件第 34、35 页合并

事件与事件调度器

事件(EVENT)是一种特殊的存储过程,在指定的时刻或每隔一段时间自动执行,用于定时删除记录、汇总数据、清空表等任务。
事件与触发器
由什么引起
触发器表上发生的插入、修改、删除
事件指定的时刻或时间间隔
  • 事件可以只执行一次,也可以周期执行
  • 事件有时也称为临时触发器
事件调度器
  • 事件调度器(EVENT SCHEDULER)是 MySQL 中的一个线程,不断检查事件是否到了执行的时间
  • MySQL 8.0 中默认是打开的
SHOW VARIABLES LIKE 'event_scheduler';
SET GLOBAL event_scheduler = ON;

调度器关闭时也能建立事件,只是事件不执行。要长期打开,在 my.ini 或 my.cnf 中加入 event_scheduler=on 后重启服务。

12
第 16 章 · 第四节 · 课件第 36、37、38、39 页合并重做

创建事件的语法

ON SCHEDULE 定时间,DO 后面是要执行的语句。

16.2 MySQL 事件课件第 37、38、39 页合并

创建事件的语法

CREATE EVENT [IF NOT EXISTS] 事件名 ON SCHEDULE 时间规则 [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT '注释'] DO 事件体;
时间规则
写法含义
AT 时刻 [+ INTERVAL 间隔]在某个时刻执行一次
EVERY 间隔每隔一段时间执行一次
STARTS 时刻周期执行的开始时间
ENDS 时刻周期执行的结束时间
其他子句
  • ON COMPLETION NOT PRESERVE:执行完或到期后删除事件,是默认值
  • ON COMPLETION PRESERVE:到期后保留事件
  • ENABLE、DISABLE:启用或暂停,默认 ENABLE
  • DO:要执行的语句,多条语句用 BEGIN … END
  • 间隔写成 INTERVAL 10 SECOND、INTERVAL 1 HOUR 等,EVERY 后面直接写 5 SECOND、1 WEEK

试一试几种时间规则什么时候执行

假设在 10:00:00 建立事件
规则
保山学院·人工智能教研室·曹鼎鼎