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