語句:update
employees
setemployees.salary =
2000
;語句級觸發器:
--測試行級觸發器,預設情況下是語句級的
create
orreplace
trigger
test_row_trigger
before
update
onemployees
declare
begin
dbms_output.put_line(
'update1111'
);end
;
行級觸發器:
--測試行級觸發器
create
orreplace
trigger
test_row_trigger
before
update
onemployees
foreach
rowdeclare
begin
dbms_output.put_line(
'update1111'
);end
; employees的資料:
1、語句級觸發器:
結果:
如果使用的是語句級觸發器,那麼觸發器只會在相應的語句(eg:update)執行或者是執行之後執行一次。一般情況下不會這樣使用。
2、行級觸發器
可以看到,在執行了
update
employees
setemployees.salary =
2000
,之後執行了6次。
如果把語句改為:
update
employees
setemployees.salary =
2000
where
employees.employee_id =
'1'or
employees.employee_id =
'2';結果是:
一共執行了兩次,也就是說相應的語句(eg:update)有影響到幾行記錄,就執行幾次觸發器。
3、其他區別
(1)行級觸發器能夠通過:new.屬性 和 :old.屬性等獲得update或者insert發生之前的新值和發生值之後的舊值。
ORACLE觸發器 行級觸發器
行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...
行級觸發器
行級觸發器 1觸發器使用for each row選項 2行級觸發器進行dml操作時,每作用一行就觸發一次。行級觸發器分類 1before行級觸發器 為了確保資料符合商業邏輯和企業規劃,應該使用約束對輸入資料加以限制。在某些情況下約束無法實現複雜的商業邏輯和企業規範,這時候可以使用before行級觸發...
Oracle觸發器介紹 行級觸發器
行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸 髮器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例一 個簡...