1. 程式人生 > >oracle 觸發器簡單例項

oracle 觸發器簡單例項

語法格式:

create or replace trigger 觸發器名字 

before(/after)  insert(delete ,update)---這個不能寫select

on 表--在那張表建立觸發器

for each row---行觸發器

declare --申明

變數申明塊
begin

執行語句塊
end


條件謂詞

inserting/deleting/updating 為什麼要用這個 oracle觸發器可以同時是插入或者更新,有時候我們需要知道是那個動作出發了 就要這幾個條件詞語。

oracle中 oid/new

oid的意思是針對資料庫存在的那條資料做處理,而new是新的(沒有的意思)不知道我說的很明白不?

例子:

當用戶在t_sp表中插入一條資料 則插入使用者的資訊和時間。

t_sp資料指令碼:

create table t_sp

(

 t_id varchar2(40) primary key,

t_name varchar2(40),

t_sex char(2) check(t_sex in('男','女'))

)

user表

create table t_user

(

t_name varchar(40),

t_date date

)

觸發器:

create or replace  trigger t_juor

before insert  on t_sp

for each row

declare

username varchar2(40);

begin

select user into username from dual;

   if(username='t_sp') then

       insert into t_user values(username,:new.t_date);

   else 

        dbms_output.put_line('對不起你沒有許可權');

     end if;

 end;

以上是自學個人看法,如果朋友們有更好的也可以教教我,謝謝。