你是否了解Oracle触发器

数据库 Oracle
这里介绍Oracle触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。

本人很喜欢Oracle,在工作中也很喜欢总结关于Oracle触发器的经验教训,下面就这个问题来详细说说吧。Oracle触发器有两种after和before,区别在于每次提交事务触发一次和每一行数据的更新都触发一次,使用时候要注意,以免达不到目的

Oracle产生数据库触发器的语法为:
create [or replace] trigger 触发器名 触发时间 触发事件
on 表名
[for each row]
pl/sql 语句

其中:Oracle触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。

Oracle触发时间:指明触发器何时执行,该值可取:
before---表示在数据库动作之前触发器执行;
after---表示在数据库动作之后出发器执行。

Oracle触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器。

表 名:数据库触发器所在的表。
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

举例:下面的触发器在更新表auths之前触发,目的是不允许在

周末修改表:

  1. create trigger auth_secure  
  2. before insert or update or delete   
  3. //对整表更新前触发  
  4. on auths  
  5. begin  
  6. if(to_char(sysdate,'DY')='SUN'  
  7. RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');  
  8. end if;  
  9. end 

【编辑推荐】

  1. 详谈Oracle对象特权说明
  2. Oracle系统特权部分介绍
  3. 最常见的Oracle密码验证
  4. 简单探讨Oracle介质恢复
  5. 完全干掉Oracle死锁进程
责任编辑:佚名 来源: IT168
相关推荐

2011-05-20 14:06:25

Oracle触发器

2010-10-25 14:09:01

Oracle触发器

2011-04-14 13:54:22

Oracle触发器

2011-05-19 14:29:49

Oracle触发器语法

2010-04-15 15:32:59

Oracle操作日志

2010-04-23 12:50:46

Oracle触发器

2010-10-22 11:10:43

SQL Server触

2010-11-08 11:49:24

SQL Server管

2010-04-09 09:07:43

Oracle游标触发器

2010-11-10 13:37:01

SQL Server触

2009-11-17 09:31:06

Oracle Dual

2009-12-24 17:24:21

WPF属性触发器

2010-04-26 14:12:23

Oracle使用游标触

2010-05-04 09:44:12

Oracle Trig

2011-04-19 10:48:05

Oracle触发器

2011-03-03 14:04:48

Oracle数据库触发器

2009-11-17 17:11:32

Oracle空闲数据块

2009-11-20 17:10:43

Oracle B树索引

2010-04-29 10:48:10

Oracle序列

2010-04-26 14:03:02

Oracle使用
点赞
收藏

51CTO技术栈公众号