為什麼使用instead of觸發器?
在簡單的檢視上往往可以執行insert update delete操作的,但在複雜檢視上是有限制的,比如有分組 集合運算子的,這時就需要建立替代觸發器
instead of是只適用於檢視上的一種觸發器,不能指定before和after選項,
系統觸發器create
orreplace
trigger instead_of_trigger
instead of
insert
on emp_dept
foreach
rowdeclare
v_temp int;
begin
select
count(*) into v_temp from dept where deptno=:new.deptno;
if v_temp=0 then
insert
into dept(deptno,dname) values(:new.deptno,:new.dname);
endif;
select
count(*) into v_temp from emp where empno:=new.empno;
if v_temp=0 then
insert
into emp(empno,ename,deptno) values(:new.empno,:new.ename,:new.deptno);
endif;
end;
系統觸發器是由特定系統事件所觸發的觸發器,是指與例程或方案相關的資料庫事件,它包括startup、shutdown、db_role_change和servererror的四種事件。
startup事件觸發器是在啟動資料庫後觸發
shutdown事件觸發器是在關閉資料之前觸發
db_role_change事件觸發器在改變角色後第一次開啟資料庫時觸發
servererror事件觸發器在發生oracle錯誤時觸發
create
orreplace
trigger startup_trigger
after startup on
database
begin
insert
into event_table values(ora_sysevent,sysdate);
end
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...
mysql系統觸發器 mysql觸發器
觸發器可以讓你在執行insert update delete的時候,執行一些特定的操作,可以在mysql中指定是咋sql語句之前還是之後。觸發器本身沒有返回值,不過他們可以讀取或者更改處罰sql語句所影響的資料。所以,可以使用觸發器實現一些強制限制,或者某些業務邏輯,否則,就需要再應用城西中實現這些...
觸發器六 系統觸發器 學習筆記
系統觸發器用於監視資料庫服務的開啟 關閉 錯誤等資訊的取得,或者是監控使用者的行為操作等。如果要建立系統觸發器,可以使用如下的語法 create or replace trigger 觸發器名稱 before after 資料庫事件 on database schema when 觸發條件 decl...