数据库原理与应用 第 16 章 · 第七节
课程第 16 章第七节 还有三件两种查法看全部回显看一个改得动语法删事件DROP小结总结全章图 版式
第 16 章 触发器和事件 · 第七节

查看、修改、删除事件与全章小结

本 节 知 识 点
  1. 53事件建好之后的三件事
  2. 54看全部和看一个
  3. 55SHOW EVENTS 加 \G
  4. 56十五列,两个事件并排
  5. 57SHOW CREATE EVENT
  6. 58事件改得动
  7. 59ALTER EVENT 七行
  8. 60改频率、改名字、加注释
  9. 61删事件一句话
  10. 62DROP EVENT 加名字
  11. 63事件四条语句
  12. 64两样自动的东西讲完了
  13. 65触发器三条,事件四条
53
第 16 章 · 第七节

事件建好之后的三件事

查、改、删,跟触发器那三步对着看。

第 53 页课件

记牢它事件三条语句

  1. SHOW EVENTS
  2. ALTER EVENT
  3. DROP EVENT

重 点

触发器那边只有查和删两条,事件这边多出来一条 ALTER。

知道更多

多这一条是因为事件的定义在 mysql.event 表里,改一行就行。

54
第 16 章 · 第七节

看全部和看一个

跟触发器那边的两种查法是一个路子。

第 54 页课件

分清楚两条语句

写法看到什么
SHOW EVENTS本库全部事件
SHOW CREATE一个事件的定义

想一想

触发器那边对应的是哪两条?

55
第 16 章 · 第七节

SHOW EVENTS 加 \G

Type 那一列写着是一次性还是周期性。

第 55 页课件

重 点

ONE TIME 看 Execute at,RECURRING 看 Interval 和 Starts。

知道更多

课件这一句写成了 SHOW EVENTs,大小写无所谓,习惯上全大写。

上机做

上机五第 1 题 查一遍

56
第 16 章 · 第七节

十五列,两个事件并排

Status 那一列写着 ENABLED 还是 DISABLED。

第 56 页课件

重 点

Ends 是 NULL 就说明这个事件没写收工时刻,会一直跑下去。

想一想

Originator 那一列是干什么的?

57
第 16 章 · 第七节

SHOW CREATE EVENT

把这个事件完整的定义原样打出来。

第 57 页课件

重 点

回显里那些 ON COMPLETION、ENABLE 是你没写它也会补上的。

知道更多

跟第 7 章 SHOW CREATE VIEW 一个道理,服务器补全了默认值再还给你。

练一练

关于触发器和事件,下面哪一句是错的?
  1. A事件里能用 NEW 和 OLD
  2. B触发器不能 ALTER
  3. C事件要开调度器才跑
答案 A

NEW 和 OLD 是触发器专有的,事件不针对某一行,压根没有这两个名字。

上机做

上机五第 2 题 看一个

58
第 16 章 · 第七节

事件改得动

跟触发器最不一样的一点。

第 58 页课件

重 点

触发器只能删了重建,事件一句 ALTER 就改完了。

记牢它ALTER 改得了什么

  1. 时间规则
  2. 名字
  3. 注释
  4. 启用还是停用

想一想

改完之后它原来排的那次执行还算数吗?

59
第 16 章 · 第七节

ALTER EVENT 七行

想改哪一样就写哪一行,别的不写就不动。

第 59 页课件

重 点

课件这一行印着 IF NOT EXISTS,ALTER EVENT 压根没有这个子句。

知道更多

ON COMPLETION NOT PRESERVE 的事件跑完就没了,也就没得改了。

上机做

上机五第 4 题 撞两次 1064

想一想

那哪一句后面才能写 IF NOT EXISTS?

60
第 16 章 · 第七节

改频率、改名字、加注释

一句话里可以一次改好几样。

第 60 页课件

重 点

RENAME TO 改的是事件名,改完原来那个名字就查不到了。

上机做

上机五第 3 题 改一次看看

想一想

改完之后下一次执行从哪儿算起?

61
第 16 章 · 第七节

删事件一句话

DROP EVENT,跟删触发器一个样子。

第 61 页课件

重 点

删掉之后它排的那些执行全都取消,已经跑过的结果留在表里。

知道更多

跑完就没的事件不用删,它自己已经不在了。

想一想

停用和删除,这两件事差在哪?

62
第 16 章 · 第七节

DROP EVENT 加名字

课件这一行的 IF NOT EXISTS 又写错了,该是 IF EXISTS。

第 62 页课件

重 点

删一个不存在的事件报 1539,删触发器报的是 1360,两个号别记混。

上机做

上机五第 5 题 删两个试试

想一想

为什么两件事的错误号不一样?

63
第 16 章 · 第七节

事件四条语句

建、查、改、删,比触发器多一条 ALTER。

第 63 页课件

记牢它事件比触发器多的

  1. 能 ALTER
  2. 要开调度器
  3. 不认 NEW 和 OLD

想一想

这三条哪一条最容易忘?

64
第 16 章 · 第七节

两样自动的东西讲完了

一样被数据碰醒,一样被时间叫醒。

第 64 页课件

试一试六个需求各该用哪个

业务需求该用哪个
插入成绩为空时自动改成 0
改专业时记一条修改日志
每天凌晨两点备份订单表
删学生时同步删他的选课
每周汇总一次平均分
下班之后把临时表清一次
点一行看答案,判断只有一条:谁把它叫醒的。

重 点

判断只看一条:叫醒它的是一次数据操作,还是一个时刻。

上机做

上机五第 6 题 综合跑一遍

65
第 16 章 · 第七节

触发器三条,事件四条

两张图并排,把这一章七条语句收在一起。

第 65 页课件

分清楚最后一次对照

触发器事件
谁叫醒增删改时间
NEW/OLD没有
改法重建ALTER
前提开调度器

重 点

考试最爱考的就是这张表的第二行和第三行。

想一想

下一章讲用 Python 连 MySQL,跟这一章有什么关系?

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