文件名称:触发器总结-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2024-06-29 04:38:53
达梦,DM7
13.5 触发器总结 语句级触发器的触发事件包括某个基表上的 INSERT、DELETE和 UPDATE 操作,无论 对于哪种操作,都能够为其创建 BEFORE 触发器和 AFTER 触发器。如果触发器的动作代码 不取决于受影响的数据,语句级触发器就非常有用。例如,可以在表上创建一个 BEFORE INSERT语句触发器,以防止在某些特定期限以外的时间对一个表进行插入。 每张基表上可创建的触发器的个数没有限制,但是触发器的个数越多,处理 DML语句所 需的时间就越长,这是显而易见的。创建触发器的用户必须是基表的创建者,或者拥有 DBA 权限。注意,不存在触发器的执行权限,因为用户不能主动“调用”某个触发器,是否激发一 个触发器是由系统来决定的。 对于语句级触发器和元组级触发器来说,都是在 DML 语句运行时激发的。在执行 DML 语句的过程中,基表上所创建的触发器按照下面的次序依次执行: 1. 如果有语句级前触发器的话,先运行该触发器; 2. 对于受语句影响每一行: 1) 如果有行级前触发器的话,运行该触发器; 2) 执行该语句本身; 3) 如果有行级后触发器的话,运行该触发器; 3. 如果有语句级后触发器的话,运行该触发器。 需要注意的是,同类触发器的激发顺序没有明确的定义。如果顺序非常重要的话,应该 把所有的操作组合在一个触发器中。触发器功能强大,但需要谨慎使用,过多的触发器或复 杂触发器过程脚本会降低数据库的运行效率。 还需要注意的是,在 DM7的数据守护环境下,备机上定义的触发器是不会被触发的。