分类: Oracle
2008-12-30 16:03:28
触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。
功能:1、 允许/限制对表的修改 2、 自动生成派生列,比如自增字段
3、 强制数据一致性 4、 提供审计和日志记录
5、 防止无效的事务处理 6、 启用复杂的业务逻辑
触发器触发时间有两种:after和before。
1、触发器的语法:
CREATE [OR REPLACE] TIGGER 触发器名 触发时间 触发事件
ON 表名
[FOR EACH ROW]
BEGIN
pl/sql语句
END
其中:触发器名:触发器对象的名称。
由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before---表示在数据库动作之前触发器执行;
after---表示在数据库动作之后出发器执行。
触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器。
表 名:数据库触发器所在的表。
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。
2.一个简单的触发器
create tigger test after update or delete //创建名为TEST 的触发器
on tableA //为哪个表创建
when (table.run_time ! = '2008') // 限制条件
begin //主体语句
insert into wduserupload //
values(tableA.a,tableA.b...)
end