Oracle --觸發器

觸發器在數據庫裏以獨立的對象存儲,它與存儲過程不一樣的是,存儲過程經過其它程序來啓動運行,而觸發器是由一個事件來啓動運行。sql

1. 觸發器特性數據庫

1>觸發器是當某個事件發生時自動的運行。
oracle

2>觸發器不能接收參數。code

3>oracle事件指的是對數據庫表進行的insert、update、delete等操做。對象

2. 觸發器組成
事件

2.1 觸發事件:引發觸發器被觸發的事件。例如:insert、update、delete等語句對錶或視圖的操做。class

2.2 觸發時間:即該trigger是在觸發事件發生以前仍是以後觸發。date

2.3 觸發操做:即該trigger被觸發以後的目的和意圖,就是觸發器自己要作的事情。
程序

2.4 觸發對象:包括表、視圖、模式、數據庫等,只有在這些對象上發生了符合觸發條件的觸發事件,纔會執行觸發操做。im

2.5 觸發條件:由when子句指定一個邏輯表達式,只有當該表達式的值爲true時,遇到觸發事件纔會自動執行觸發器,使其執行觸發操做。

2.6 觸發頻率:說明觸發器內定義的動做被執行的次數。即語句級觸發器(statement)和行級(row)觸發器。

語句級觸發器:當某觸發事件發生時,該觸發器只執行一次。

行級觸發器:當某觸發事件發生時,對受到該操做影響的每一行數據,觸發器都單獨執行一次。

3. 建立觸發器實例

create or replace trigger demo
  before insert on t_user  
  
declare
  -- local variables here
begin

  dbms_output.put_line('該觸發器已被執行!');
  
end demo;

向t_user表中添加數據

insert into t_user
  (user_id, user_name, gender, age, telephone)
values
  (5, '王老吉', '0', 10, '13269368569')

查看觸發器是否被執行

相關文章
相關標籤/搜索