数据库原理与应用 第 16 章 · 第一节
课程第 16 章第一节 开篇两样自动先讲哪个触发器四件事什么时候动两种时机执行过程能干什么 版式
第 16 章 触发器和事件 · 第一节

触发器是什么

本 节 知 识 点
  1. 01我没敲它,它自己跑了
  2. 02触发器被数据碰醒,事件被时间叫醒
  3. 03这一章前半触发器,后半事件
  4. 04建、查、改、删
  5. 05先弄清它什么时候动
  6. 06BEFORE 在前,AFTER 在后
  7. 07三种操作各走一条线
  8. 08课件列的六个场景
01
第 16 章 · 第一节

我没敲它,它自己跑了

这一章讲两样不用你动手就会运行的东西。

第 1 页课件

重 点

上一章的过程要 CALL 才跑,这一章的两样自己就动了。

打个比方

存储过程是随叫随到的师傅,这两样是装在门口的感应灯。

02
第 16 章 · 第一节

触发器被数据碰醒,事件被时间叫醒

叫醒它们的东西不一样,这是全章的分界线。

第 2 页课件

关键术语

触发器TRIGGER
表被增删改时自动跑的一段代码
事件EVENT
到了某个时刻自动跑的一段代码
事件调度器EVENT SCHEDULER
专门盯着事件到没到点的那根线程

试一试同样一段代码,谁来叫它

谁来叫它

    想一想

    哪一样更像操作系统里的定时任务?

    03
    第 16 章 · 第一节

    这一章前半触发器,后半事件

    两样各讲四步:建、查、改、删。

    第 3 页课件

    记牢它两半的顺序

    1. 先触发器
    2. 再事件
    3. 各自建查改删

    知道更多

    对应教材第 16 章,前半 16.1,后半 16.2。

    04
    第 16 章 · 第一节

    建、查、改、删

    改这一件比较特别,它其实没有改。

    第 4 页课件

    重 点

    触发器不能 ALTER,要换内容只能先删掉再重新建一个。

    想一想

    为什么不给触发器留一个 ALTER?

    05
    第 16 章 · 第一节

    先弄清它什么时候动

    什么条件下触发,触发之后跑在哪一格。

    第 5 页课件

    重 点

    触发器只认三种操作:INSERT、UPDATE、DELETE,查询碰不动它。

    知道更多

    这一节全是概念,第二节才动手写第一个触发器。

    想一想

    一句 SELECT 会不会把触发器叫醒?

    06
    第 16 章 · 第一节

    BEFORE 在前,AFTER 在后

    同一件事,卡在数据落盘的前面还是后面。

    第 6 页课件

    分清楚两种时机

    时机拿来做什么
    BEFORE校验、改新值
    AFTER记日志、后续统计

    试一试一条 INSERT 拆成五步走

    走到第几步

      重 点

      只有 BEFORE 改得动将要写进去的值,AFTER 时数据已经是事实。

      想一想

      想拦住一条不合格的数据,该用哪个?

      07
      第 16 章 · 第一节

      三种操作各走一条线

      课件这张图说的就是数据和两种触发器的先后。

      第 7 页课件

      重 点

      INSERT、UPDATE、DELETE 三种操作,每种都有前后两个位置。

      记牢它六种组合

      1. BEFORE 三种
      2. AFTER 三种
      3. 一共六个位置

      练一练

      「插入员工时工资小于 0 就改为 0 再保存」该用哪一种?
      1. ABEFORE INSERT
      2. BAFTER INSERT
      3. CBEFORE UPDATE
      答案 A

      要改新值就只能 BEFORE,事件是插入所以是 INSERT,合起来就是 A。

      试一试六个格子各点一个

      INSERTUPDATEDELETE
      BEFORE
      AFTER
      六个格子随便点一个,看它平时拿来做什么。
      08
      第 16 章 · 第一节

      课件列的六个场景

      安全检查、数据校验、审计、备份同步、算值、复杂约束。

      第 8 页课件

      知道更多

      第 5 章那五道安检门管得住简单规则,管不住跨表的复杂规则。

      打个比方

      CHECK 只看得见本行,触发器能去别的表里查一眼。

      想一想

      「删学生连他的选课一起删」属于哪一类?

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