本文共 1054 字,大约阅读时间需要 3 分钟。
数据库触发器的一类靠事务驱动的特殊过程。
触发器一旦由某用户定义,任何用户对触发器规定的数据进行更新操作,均自动激活相应的触发器采取应对措施。
触发器本质上是一条语句,当对数据库做更新操作时,它自动被系统执行。
引起触发器动作的事件,通常是更新操作。
触发器将测试条件是否满足。如果条件满足,就执行相应的操作,否则什么也不做。
如果触发器测试满足预订的条件,就由 DBMS 执行这些动作。这些动作可以是一系列对数据库的操作,这些动作也能使触发器事件撤销,如删除一个刚插入的元组等,甚至可以是对触发事件本身无关的其他操作。
CREATE TRIGGER <触发器名> {BEFORE|AFTER} <触发事件> ON <表名> [REFERENCING <旧值或新值表名> ]FOR EACH {ROW|STATEMENT}旧值或新值表名> 表名> 触发事件> 触发器名>
#下面该触发器将每一个从表book中删除行中的书名插入到一个称为bookdelete的表中CREATE TRIGGER book - deALTER DELETE ON bookREFERENCING OLD AS oldlineFOR EACH ROWINSERT ITO bookdelete VALUES(oldline.title)
#下面这个触发器规定如果需要修改 s_c 中的 grade,那么值只能升高不能降低,否则拒绝。CREATE TRIGGER trig_grade #创建触发器AFTER UPDATE OF grade ON s_c #触发事件,在s_c的grade被修改之后执行REFERENCING OLD AS oldg,NEW AS newg #起别名FOR EACH ROW #执行频率:每一行WHEN(oldg.grade > newg.grade) #触发条件 UPDATE s_c SET grade = oldg.grade WHERE cno = oldg.cno AND sno = oldg.sno
DROP TRIGGER <触发器名>触发器名>
转载地址:http://uqded.baihongyu.com/