介紹了oracle中觸發器的簡單使用,實際中觸發器的引入回導致資料難以控制,所以還是少用為好。
觸發器是在資料增、刪、改時進行執行,通過對前後資料校驗,完成資料錄入。
按照作用範圍可以分為行級觸發器和表級觸發器
:old
和:new
代表一行記錄在操作前後的值
-- 禁止在非工作時間插入新員工
create
orreplace
trigger new_emp
before insert
--觸發條件
on emp
declare
--在沒有宣告時可以省略
begin
if to_char(sysdate,
'day')in
('星期六'
,'星期日')or
--可以直接呼叫系統函式的結果
to_number(to_char(sysdate,
'hh24'))
notbetween
9and
17then
--邏輯條件
-20001
,'禁止在非工作時間插入新員工');
--自定義乙個異常,指明編號[-20001,-40000]和提示
endif
;--結束判斷
end;
-- 漲工資,不能少,只能多
create
orreplace
trigger cherk_sal
before update
--觸發條件
on emp
for each row
-- 行級觸發器
declare
begin
if :new.sal < :old.sal then
-- 新值小於舊值
-20002
,'漲後薪水不能小於之前的,漲前的:'
||:old.sal||
'漲後的'
||:new.sal)
;endif;
end;
oracle觸發器基礎
基礎書籍中記錄下來的。1 語句觸發器 create or replace trigger tr insert test1 before insert on test1 begin if user admin then end if end 多個啟用動作 create or replace trigg...
ORACLE觸發器 行級觸發器
行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...
基礎 觸發器
github mysql 從 5.0.2 開始支援觸發器。觸發是與表相關的資料庫操作,在滿足定義條件時觸發,並執行觸發器中定義的語句。可以協助應用程式在資料庫端確保資料的完整性,減少不必要的邏輯處理。觸發器只能建立在永久表上,不能建立在臨時表上。對於同乙個表,相同觸發時間,相同觸發事件,只能定義乙個...