oracle 觸發器簡單例項
阿新 • • 發佈:2019-02-04
語法格式:
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;
以上是自學個人看法,如果朋友們有更好的也可以教教我,謝謝。