数据库原理与应用 第 16 章 · 第五节
课程第 16 章第五节 后半章事件五件事靠什么跑事件是什么调度器怎么建语句结构语法时间规则 版式
第 16 章 触发器和事件 · 第五节

事件与调度器

本 节 知 识 点
  1. 31换讲事件
  2. 32建、查、改、删,外加开调度器
  3. 33先弄清它靠什么运行
  4. 34一种定时执行的特殊存储过程
  5. 35不开它,事件建得上也不跑
  6. 36把事件建起来
  7. 37整体、关键参数、总结
  8. 38CREATE EVENT 六行
  9. 39AT 一次,EVERY 循环
31
第 16 章 · 第五节

换讲事件

同样是存进库里的一段代码,叫醒它的换成了时间。

第 31 页课件

重 点

触发器盯着某一张表,事件谁也不盯,只盯钟。

打个比方

触发器是门口的感应灯,事件是墙上的定时开关。

知道更多

教材把这一半放在 16.2,考试里两半各占一道题的分量。

32
第 16 章 · 第五节

建、查、改、删,外加开调度器

比触发器多一件,也多一条 ALTER。

第 32 页课件

分清楚两样对比

改得了吗
触发器不行,只能重建
事件行,ALTER EVENT

想一想

为什么事件能改,触发器不能?

33
第 16 章 · 第五节

先弄清它靠什么运行

一个概念,一个开关。

第 33 页课件

重 点

事件本身只是一条记录,真正让它跑起来的是调度器那根线程。

知道更多

开关这一件最容易漏,漏了后面全白做。

想一想

调度器关掉之后,已经建好的事件还在吗?

34
第 16 章 · 第五节

一种定时执行的特殊存储过程

定时删记录、定时汇总、定时清表都靠它。

第 34 页课件

关键术语

事件EVENT
在指定时刻或按周期自动执行的任务
临时性触发器
事件的另一个叫法,强调它也是自动跑的

重 点

触发器响应表上的操作,事件响应时间间隔,区别只在这一句。

想一想

「每天凌晨两点备份」该用哪一个?

35
第 16 章 · 第五节

不开它,事件建得上也不跑

事件调度器是一根专门盯着钟的线程。

第 35 页课件

试一试开与不开,两条路

event_scheduler

    重 点

    没开调度器时建事件,回显里会多一句 warning 提醒你。

    知道更多

    课件说默认开着,那是 MySQL 8.0 的默认值,5.7 和 MariaDB 默认是关的。

    上机做

    上机四第 1 题 先查再开

    36
    第 16 章 · 第五节

    把事件建起来

    语法一套,例子六个。

    第 36 页课件

    记牢它建事件三步

    1. 起个名字
    2. 定时间规则
    3. 写要干的事

    重 点

    六个例子从最简单的立刻执行,一路排到调用存储过程。

    知道更多

    事件建在哪个库里,跑的时候就在哪个库里,跨库要写全名。

    37
    第 16 章 · 第五节

    整体、关键参数、总结

    关键在 SCHEDULE 那一段,别的都是配料。

    第 37 页课件

    重 点

    CREATE EVENT 后面必写的只有名字、ON SCHEDULE 和 DO 三样。

    记牢它三样必写的

    1. 事件名
    2. 时间规则
    3. DO 加要干的事

    想一想

    少写 DO 那一段会怎么样?

    38
    第 16 章 · 第五节

    CREATE EVENT 六行

    中间四行都可以不写,写了才有额外效果。

    第 38 页课件

    关键术语

    ON COMPLETION
    跑完了这个事件留不留下来
    ENABLE
    建好之后启用还是先停着
    COMMENT
    给这个事件写一句说明

    知道更多

    DO 后面要跑好几句就用 BEGIN…END 包起来,那时又得改定界符。

    想一想

    IF NOT EXISTS 放在哪一句后面才合法?

    39
    第 16 章 · 第五节

    AT 一次,EVERY 循环

    另外两个子句把循环框在一段时间里。

    第 39 页课件

    分清楚四个子句

    子句管什么
    AT某一刻跑一次
    EVERY每隔多久跑
    STARTS从什么时候起
    ENDS到什么时候止

    试一试加不加 STARTS 和 ENDS

    加不加这两个子句
    第一次什么时候跑什么时候收工

    记牢它速记

    1. AT 是在某时
    2. EVERY 是每隔

    上机做

    上机四第 3 题 两种各跑一遍

    保山学院·人工智能教研室·曹鼎鼎