生活随笔
收集整理的這篇文章主要介紹了
oracle 触发器
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
?
1 觸發(fā)器
1.1 觸發(fā)器概述
1.2 觸發(fā)器的創(chuàng)建?
?1.3 觸發(fā)器維護(hù)
1 觸發(fā)器
觸發(fā)器時存儲在數(shù)據(jù)庫中的程序單元,當(dāng)數(shù)據(jù)庫中發(fā)生某些事件時,如insert,delete,數(shù)據(jù)庫會自動觸發(fā)觸發(fā)器。執(zhí)行相應(yīng)的操作。
1.1 觸發(fā)器概述
觸發(fā)器在創(chuàng)建成功后,不能直接被調(diào)用,只有當(dāng)觸發(fā)條件成立時,才能執(zhí)行。觸發(fā)器存在以下作用
允許、限制表的修改提供日志記錄防止無效的事物處理啟動復(fù)雜的業(yè)務(wù)邏輯
觸發(fā)事件:
insert:當(dāng)指定表發(fā)生插入時執(zhí)行觸發(fā)器?update:當(dāng)指定表發(fā)生更新時執(zhí)行觸發(fā)器delete:當(dāng)指定表發(fā)生刪除時執(zhí)行觸發(fā)器create:創(chuàng)建對象時執(zhí)行觸發(fā)器alert:修改對象時執(zhí)行觸發(fā)器drop:刪除對象時執(zhí)行觸發(fā)器startup/shutdown:數(shù)據(jù)庫打開或者關(guān)閉時執(zhí)行觸發(fā)器
觸發(fā)時間
? ? ? ?before 在指定時間發(fā)生前執(zhí)行? ? ? ?after 在指定時間發(fā)生后執(zhí)行
觸發(fā)級別
行觸發(fā):對于指定表,改變一行數(shù)據(jù),觸發(fā)一次,這種類型的觸發(fā)器只有在insert、update、delete完成以后被觸發(fā)語句觸發(fā):對于觸發(fā)事件只能觸發(fā)一次且不能訪問。簡單來說無論sql語句影像多少行記錄,觸發(fā)器只執(zhí)行一次。
1.2 觸發(fā)器的創(chuàng)建?
觸發(fā)器的創(chuàng)建語法
create or replace? trigger trigger_name
before|after|instead of
trigger_event on? table|view
for each row
enable|disable
when(condition)
body
?replace? 如果創(chuàng)建的觸發(fā)器已經(jīng)存儲在則替換為當(dāng)前罪行觸發(fā)器trigger_name 觸發(fā)器名稱before|after|instead of 語句執(zhí)行前觸發(fā) after?語句執(zhí)行后觸發(fā)??instead of? 替換行觸發(fā)器trigger_event? 觸發(fā)事件 一個觸發(fā)器可以有多個觸發(fā)器table|view 執(zhí)行觸發(fā)器的表或者試圖for each row 行級觸發(fā)器,省略默認(rèn)為語句機(jī)觸發(fā)器enable|disable 設(shè)置觸發(fā)器是否可用狀態(tài)when(condition) 觸發(fā)器被觸發(fā)的條件body 過程體 觸發(fā)后執(zhí)行的具體操作
create or replace trigger test_trigger --創(chuàng)建或者替換觸發(fā)器 test_triggerafter delete on emp --指定觸發(fā)事件和執(zhí)行觸發(fā)器的表begin -- 執(zhí)行體if deleteing thendmps_out.put_line('刪除。。。。')end if;
end; -- 結(jié)束
?1.3 觸發(fā)器維護(hù)
修改觸發(fā)器:使用replace關(guān)鍵字
重新編譯觸發(fā)器:如果需要對觸發(fā)器進(jìn)行重新編譯可以使用語法 alert trigger trigger_name comple
禁用啟用觸發(fā)器 alert trigger trigger_name disable 禁用?alert trigger trigger_name enable 啟用
刪除觸發(fā)器?drop trigger trigger_name?
參考 oracle 從入門到精通
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎
總結(jié)
以上是生活随笔為你收集整理的oracle 触发器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。