程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 解析Oracle觸發器的語法

解析Oracle觸發器的語法

編輯:Oracle數據庫基礎

導讀:觸發器是一種特殊的存儲過程,觸發器的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,Oracle數據庫是大家非常熟悉的數據庫系統啦,那麼Oracle觸發器的語法是怎樣的呢?下文中將為大家帶來詳細的解析。

Oracle 觸發器

Oracle產生數據庫觸發器的語法為:

create [or replace] trigger 觸發器名 觸發時間 觸發事件

on 表名

[for each row]

pl/sql 語句

其中:

觸發器名:觸發器對象的名稱。由於觸發器是數據庫自動執行 的,因此該名稱只是一個名稱,沒有實質的用途。

觸發時間:指明觸發器何時執行,該值可取:

before---表示在數據庫動作之前觸發器執行;

after---表示在數據庫動作之後出發器執行。

觸發事件:指明哪些數據庫動作會觸發此觸發器:

insert:數據庫插入會觸發此觸發器;

update:數據庫修改會觸發此觸發器;

delete:數據庫刪除會觸發此觸發器。

表 名:數據庫觸發器所在的表。

for each row:對表的每一行觸發器執行一次。如果沒有這一選項,則只對整個表執行一次。

舉例:下面的觸發器在更新表auths之前觸發,目的是不允許在周末修改表:

create trigger auth_secure

before insert or update or delete file://對整表更新前觸發

on auths

begin

if(to_char(sysdate,'DY')='SUN'

RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');

( RAISE_APPLICATION_ERROR是函數,括弧內的,第一參數范圍在-20000~20999之間,第二個

參數是字符串,大小在2k,超過的話,系統自動截斷)

end if;

end

上文中介紹的Oracle數據庫觸發器的語法知識並不是很全面,如果大家對這方面的知識比較感興趣,以後我還會繼續為大家介紹更多更詳細的知識,希望能夠幫助到大家。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved