Oracle触发器使用(三):设计规范和禁用启用

触发器设计规范

  1. 触发器可以用来确保每当特定事件发生时,所有必要的操作都已经执行(比如重要表数据被更新时,相关的日志已记录)。

  2. 不要创建与数据库已有功能重复的触发器(比如表字段的NOT NULL约束)。

  3. 不要创建依赖于SQL语句处理行数据的顺序的触发器。例如,如果全局包变量的当前值取决于行级触发器正在处理的行,那么不要在行级触发器中为该全局包变量赋值。如果一个触发器会更新全局包变量,那么要在BEFORE语句触发器中对这些变量进行初始化。

  4. 使用行级别的BEFORE触发器在将行数据写入磁盘之前对行进行修改。

  5. 使用行级别的AFTER触发器获取要使用的ROW_ID。AFTER触发器比BEFORE触发器更高效一些,因为此时数据块是只读的。

  6. 如果行级别的BEFORE触发器的触发事件语句是一条与正在运行的UPDATE语句冲突的UPDATE或DELETE语句,那么数据库会透明地回滚到保存点(SAVEPOINT),并重新启动触发事件语句。在触发语句成功结束之前,数据库可能会多次执行此回滚操作。每次数据库重新启动触发语句时,触发器都会被激活。
    回滚到保存点不会撤销对触发器引用的包变量所做的更改。为确保每次重新启动触发语句时不会产生不必要的副作用,要保

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GottdesKrieges

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值