触发器1

来源:互联网 发布:做好淘宝客教学视频 编辑:程序博客网 时间:2024/06/07 19:24

触发器是使用PL/SQL,java或C语言编写的存储子程序,当一个表或一个视图被改变,或者数据库发生某些事件时,oracle自动点燃触发器,并执行触发器中的代码

能点燃触发器的事件如下:

DML语句(insert,update,delete)

DDL语句

系统事件,比如数据库的关闭或启动

用户事件

根据触发器所涉及的行数,触发器分为行级触发器和语句级触发器,行级触发器指表中的数据每改变一行触发器就触发一次,语句级触发器指无论一条SQL语句改变表中的多少行数据,触发器只触发一次,语句每执行一次触发器就触发一次

根据触发时间,可分为事前触发和事后触发,事前触发指语句执行前被触发

创建触发器

create [or replace] trigger trigger_name

{before|after|instead of} event

on{table_name|view_name|database}

[or each row[when condition]]

trigger_body

创建语句级触发器

create or replace trigger t1

before insert on bs_tb_cust

begin

null;

end;

创建行级触发器

create or replace trigger t2

before insert on bs_tb_cust

for each row

begin

null;

end;

禁用和启用触发器

禁用:alter trigger t1 disable;

启用:alter trigger t2 enable;

如何知道数据库中有哪些触发器

select owner,trigger_name from dba_triggers;

如何删除触发器

drop trigger trigger_name;

如何得到创建触发器的源代码

方法一:select text from user_source/dba_source where type ='trigger' and name ='trigger_name';

方法二:1,set long 1000    --如果不设置sql*plus环境变量会产生错误

2,select dbms_metadata.get_ddl(‘trigger’,‘trigger_name’)from dual;




0 0
原创粉丝点击