Oracle觸發(fā)器的語(yǔ)法詳解
Oracle觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,要想完成Oracle觸發(fā)器的存儲(chǔ)作用,就需要掌握Oracle觸發(fā)器的語(yǔ)法,下面是觸發(fā)器的詳細(xì)說(shuō)明:
ORACLE 觸發(fā)器
ORACLE產(chǎn)生數(shù)據(jù)庫(kù)觸發(fā)器的語(yǔ)法為:
create [or replace] trigger 觸發(fā)器名 觸發(fā)時(shí)間 觸發(fā)事件
on 表名
[for each row]
pl/sql 語(yǔ)句
其中:
觸發(fā)器名:觸發(fā)器對(duì)象的名稱。由于觸發(fā)器是數(shù)據(jù)庫(kù)自動(dòng)執(zhí)行 的,因此該名稱只是一個(gè)名稱,沒有實(shí)質(zhì)的用途。
觸發(fā)時(shí)間:指明觸發(fā)器何時(shí)執(zhí)行,該值可?。?/p>
before---表示在數(shù)據(jù)庫(kù)動(dòng)作之前觸發(fā)器執(zhí)行;
after---表示在數(shù)據(jù)庫(kù)動(dòng)作之后出發(fā)器執(zhí)行。
觸發(fā)事件:指明哪些數(shù)據(jù)庫(kù)動(dòng)作會(huì)觸發(fā)此觸發(fā)器:
insert:數(shù)據(jù)庫(kù)插入會(huì)觸發(fā)此觸發(fā)器;
update:數(shù)據(jù)庫(kù)修改會(huì)觸發(fā)此觸發(fā)器;
delete:數(shù)據(jù)庫(kù)刪除會(huì)觸發(fā)此觸發(fā)器。
表 名:數(shù)據(jù)庫(kù)觸發(fā)器所在的表。
for each row:對(duì)表的每一行觸發(fā)器執(zhí)行一次。如果沒有這一選項(xiàng),則只對(duì)整個(gè)表執(zhí)行一次。
舉例:下面的觸發(fā)器在更新表auths之前觸發(fā),目的是不允許在周末修改表:
create trigger auth_secure
before insert or update or delete file://對(duì)整表更新前觸發(fā)
on auths
begin
if(to_char(sysdate,'DY')='SUN'
RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');
( RAISE_APPLICATION_ERROR是函數(shù),括弧內(nèi)的,第一參數(shù)范圍在-20000~20999之間,第二個(gè)
參數(shù)是字符串,大小在2k,超過(guò)的話,系統(tǒng)自動(dòng)截?cái)?
end if;
end
關(guān)于Oracle觸發(fā)器的語(yǔ)法的知識(shí)就為大家講述到這里,大家在以后的工作中遇到Oracle觸發(fā)器的操作時(shí)就能夠輕松完成了,希望大家能夠從上文中涉及到的內(nèi)容中有所收獲。