数据库原理与应用 第 16 章 · 上机五
课程第 16 章上机五 查事件查一个改事件课件那两处笔误删事件课件例题 6连续练习 版式
第 16 章 触发器和事件 · 上机五

查改删事件与课件那道综合题

课件第 49 到 62 页:查、改、删三件事,再把例题 6 那段跑不通的代码改对。
已完成 0 / 6
本 次 上 机 题 目
  1. 01先建两个,再看全部
  2. 02SHOW CREATE EVENT
  3. 03ALTER EVENT:频率、名字、注释
  4. 041064 两次
  5. 05DROP EVENT 与 1539
  6. 06存储过程加事件,先撞一次定界符
  7. 把例题 6 改对再跑一遍
01
第 16 章 · 上机五

先建两个,再看全部

Type 那一列写着 ONE TIME 还是 RECURRING。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往表上挂触发器、往库里放事件。
mysql>

重 点

一次性的看 Execute at,周期性的看 Interval value 和 Starts。

知道更多

课件第 55 页把语句写成 SHOW EVENTs,大小写无所谓,习惯上全大写。

02
第 16 章 · 上机五

SHOW CREATE EVENT

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

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往表上挂触发器、往库里放事件。
mysql>

重 点

回显里那些 ON COMPLETION NOT PRESERVE、ENABLE 是你没写它也会有的。

想一想

跟 SHOW EVENTS 比,这一条多告诉了你什么?

03
第 16 章 · 上机五

ALTER EVENT:频率、名字、注释

事件跟触发器不一样,它改得动。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往表上挂触发器、往库里放事件。
mysql>

重 点

触发器只能删了重建,事件一句 ALTER 就改完,这是两者一个明显的差别。

想一想

改完之后,下一次执行是从现在算起还是从原来那条线算起?

04
第 16 章 · 上机五

1064 两次

ALTER 和 DROP 后面都不能写 IF NOT EXISTS。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往表上挂触发器、往库里放事件。
mysql>

重 点

ALTER EVENT 压根没有这个子句,DROP EVENT 认的是 IF EXISTS。

知道更多

课件第 59、62 页两处都印成了 IF NOT EXISTS,照抄就是这两个 1064。

想一想

那 CREATE EVENT 后面能不能写 IF NOT EXISTS?

05
第 16 章 · 上机五

DROP EVENT 与 1539

删一个不存在的,报的是 Unknown event。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往表上挂触发器、往库里放事件。
mysql>

重 点

第一句删得掉,第二句那个名字压根没有,报的是 1539 Unknown event。

想一想

触发器删不存在的报 1360,事件报 1539,这两个号码怎么记?

06
第 16 章 · 上机五

存储过程加事件,先撞一次定界符

课件那段 CREATE PROCEDURE 没改定界符,照抄跑不通。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往表上挂触发器、往库里放事件。
mysql>

重 点

第三行末尾那个分号把 CREATE PROCEDURE 截断了,报的还是那个 1064。

知道更多

课件第 50、51 页两段都少了 DELIMITER,可同一份课件第 13 页自己是写了的。

想一想

avgscore 定成 INT,平均分 89.25 存进去会变成什么?

第 16 章 · 上机五

把例题 6 改对再跑一遍

改好定界符,建过程、建事件、让时间过去、看结果。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往表上挂触发器、往库里放事件。
mysql>

重 点

最后两句并排看:89.25 存进 INT 变成了 89,小数被四舍五入掉了。

知道更多

周期性事件建完就先跑一次,不必等满一个周期,这是真机的规矩。

知道更多

触发器响应数据被碰,事件响应时间到点,判断只看这一条。

想一想

要一天一次而不是一周一次,这个事件该怎么改?

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