Oracle触发器

来源:互联网 发布:顺丰软件下载 编辑:程序博客网 时间:2024/05/27 09:45

触发器与存储过程不同,触发器由事件产生,而存储过程由程序执行,触发器经常用于加强数据的完整性约束和业务规则等,如记录你所执行的操作等信息。简单介绍Oracle触发器的创建、执行效果。

1、创建数据表user

create table user(

id number(2) not null,

name varchar(20) not null,

age number(2),

primary key(id)

);

2、创建一个记录触发信息的数据表,用于记录触发事件、时间等信息;

create table user_log(

l_user varchar(20),

l_operater varchar(20),

l_time varchar(20),

);

3、创建触发器,记录插入insert、更新update以及删除delete等操作信息;

create or replace trigger user_trigger

after insert or delete or update on user

declare

v_operater  user_log %TPYE  声明变量

begin
    if inserting then  --insert触发  
        v_type := 'insert'; 
    elsif updating then--update触发  
        v_type := 'update '; 
    elsif deleting then  --delete触发
        v_type := 'delete '; 
    end if;  
    insert into  user_log values(user,v_operater,  
                    to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));  
end; 

4、对user表进行操作

insert into user values(1,'zhangsan',22);

update user set name='lisi'  where id=1;

delete from user where id=1;

5、查询user_log表

select * from user_log;

l_user                                     l_operater                                     l_time

oracle                                      insert                                          2011-11-12 14:50:20

oracle                                      update                                        2011-11-12 14:50:40

oracle                                      delete                                         2011-11-12 14:51:00