Oracle --触发器

触发器在数据库里以独立的对象存储,它与存储过程不一样的是,存储过程经过其它程序来启动运行,而触发器是由一个事件来启动运行。sql

1. 触发器特性数据库

1>触发器是当某个事件发生时自动的运行。
oracle

2>触发器不能接收参数。code

3>oracle事件指的是对数据库表进行的insert、update、delete等操做。对象

2. 触发器组成
事件

2.1 触发事件:引发触发器被触发的事件。例如:insert、update、delete等语句对表或视图的操做。class

2.2 触发时间:即该trigger是在触发事件发生以前仍是以后触发。date

2.3 触发操做:即该trigger被触发以后的目的和意图,就是触发器自己要作的事情。
程序

2.4 触发对象:包括表、视图、模式、数据库等,只有在这些对象上发生了符合触发条件的触发事件,才会执行触发操做。im

2.5 触发条件:由when子句指定一个逻辑表达式,只有当该表达式的值为true时,遇到触发事件才会自动执行触发器,使其执行触发操做。

2.6 触发频率:说明触发器内定义的动做被执行的次数。即语句级触发器(statement)和行级(row)触发器。

语句级触发器:当某触发事件发生时,该触发器只执行一次。

行级触发器:当某触发事件发生时,对受到该操做影响的每一行数据,触发器都单独执行一次。

3. 建立触发器实例

create or replace trigger demo
  before insert on t_user  
  
declare
  -- local variables here
begin

  dbms_output.put_line('该触发器已被执行!');
  
end demo;

向t_user表中添加数据

insert into t_user
  (user_id, user_name, gender, age, telephone)
values
  (5, '王老吉', '0', 10, '13269368569')

查看触发器是否被执行

相关文章
相关标签/搜索