触发器

83 阅读1分钟

触发器

触发器 "是DBMS系统自动执行的一个语句,作为对数据库进行修改的副作用。

为了设计一个触发器机制,需要用到以下两个要求。

  1. 指定触发器必须执行的时间。
  2. 指定当触发器被执行时要采取的行动。

考虑以下关系'student'。

R1: STUD-2 R2:COURSE-1

SNo SName DNo Tot-Credits CNo Title DNo Credits

121 xyz 21 80 61 DBMS 21 10

123 pqr 21 70 62 DAA 21 10

126 mnp 22 68 64 SE 22 8

128 abc 22 38 65 CO 22 8

130 jkl 23 48 67 OS 23 10

————————————————- — ————————————-

考虑以下关系。 R7 : TAKES

Stud_id Course_id Sec_id Semester Year Grade

121 61 1 4 2021 A

123 62 1 4 2021 B

126 64 1 4 2021 B

128 65 2 4 2021 F

130 67 2 4 2021 C

在对(年级)进行更新后,创建触发器 "学分"(Credits_Earned)。

引用新行作为 "newrow"。

引用旧行作为 "oldrow"。

对于每一行

当newrow.grade <> 'F' 并且newrow.grade不是空时

,并且(oldrow.grade = 'F' 或者oldrow.grade为null)

开始原子式

更新student-2

设置 tot_credits = tot_credits +

(选择学分

from course-1

where course.course-1.CNo = newrow.course.id )

where student.id = newrow.id ; end ;

注意:在这里,"引用旧行作为 "子句可以用来创建一个变量,存储更新或删除的行的旧值。

引用新行作为 "子句除了用于插入外,还可以用于更新。

换句话说,"触发器 "定义了当某些事件发生并满足相应条件时自动执行的动作。

The postTriggersappeared first oni2tutorials.