oracle_觸發(fā)器_第1頁
oracle_觸發(fā)器_第2頁
oracle_觸發(fā)器_第3頁
oracle_觸發(fā)器_第4頁
oracle_觸發(fā)器_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Neusoft Institute of InformationORACLE By liqiangl觸發(fā)器類型觸發(fā)器類型l創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器本次課主要內(nèi)容本次課主要內(nèi)容Neusoft Institute of InformationORACLE By liqiangl觸發(fā)器是許多關(guān)系數(shù)據(jù)庫系統(tǒng)都提供的一項觸發(fā)器是許多關(guān)系數(shù)據(jù)庫系統(tǒng)都提供的一項技術(shù)。技術(shù)。l觸發(fā)器是在數(shù)據(jù)庫里以獨立的對象進行存儲觸發(fā)器是在數(shù)據(jù)庫里以獨立的對象進行存儲的特殊類型的存儲過程,當(dāng)指定的觸發(fā)事件的特殊類型的存儲過程,當(dāng)指定的觸發(fā)事件發(fā)生時自動執(zhí)行。發(fā)生時自動執(zhí)行。l觸發(fā)器事件指的是對數(shù)據(jù)庫的表進行的觸發(fā)器事件指的是對數(shù)

2、據(jù)庫的表進行的insert、update、delete操作或?qū)σ晥D進行類操作或?qū)σ晥D進行類似的操作及對數(shù)據(jù)庫系統(tǒng)的啟動與關(guān)閉等事似的操作及對數(shù)據(jù)庫系統(tǒng)的啟動與關(guān)閉等事件。件。觸發(fā)器定義觸發(fā)器定義Neusoft Institute of InformationORACLE By liqianglDML觸發(fā)器:觸發(fā)器:可以在可以在DML操作前或操作后觸發(fā)。操作前或操作后觸發(fā)。l系統(tǒng)觸發(fā)器:系統(tǒng)觸發(fā)器:可以在可以在Oracle數(shù)據(jù)庫的系統(tǒng)實踐中數(shù)據(jù)庫的系統(tǒng)實踐中進行觸發(fā),如進行觸發(fā),如Oracle系統(tǒng)的啟動與關(guān)閉等。系統(tǒng)的啟動與關(guān)閉等。lInstead of觸發(fā)器:觸發(fā)器:執(zhí)行觸發(fā)器中的代碼而不是執(zhí)

3、行觸發(fā)器中的代碼而不是用戶輸入的用戶輸入的DML語句(用在視圖上)語句(用在視圖上)l模式觸發(fā)器:模式觸發(fā)器:根據(jù)根據(jù)DDL語句創(chuàng)建的觸發(fā)器語句創(chuàng)建的觸發(fā)器觸發(fā)器類型觸發(fā)器類型Neusoft Institute of InformationORACLE By liqiang創(chuàng)建創(chuàng)建DML觸發(fā)器觸發(fā)器l語法:語法:Create or replace trigger tr_nameBefore | afterInsert |delete | update of(列列1,列列2)On table_name For Each Row When (condition) PL/SQL語句塊語句塊Neuso

4、ft Institute of InformationORACLE By liqiangDML觸發(fā)器分類觸發(fā)器分類l行級觸發(fā)器行級觸發(fā)器: 對對DML語句影響的每行執(zhí)行語句影響的每行執(zhí)行一次一次l語句級觸發(fā)器語句級觸發(fā)器: 對每條對每條DML語句執(zhí)行一次語句執(zhí)行一次Neusoft Institute of InformationORACLE By liqiangDML觸發(fā)器實例觸發(fā)器實例l例子:例子:用戶添加一條產(chǎn)品的出貨記錄用戶添加一條產(chǎn)品的出貨記錄前前,檢驗,檢驗產(chǎn)品的庫存是否足夠出貨產(chǎn)品的庫存是否足夠出貨,成功添加以成功添加以后后更新更新此產(chǎn)品的庫存量。此產(chǎn)品的庫存量。Neusoft I

5、nstitute of InformationORACLE By liqiangNeusoft Institute of InformationORACLE By liqiang觸發(fā)器中觸發(fā)器中NEW與與OLDl說明:說明: :New 和和 :old: :new 引用表增加或修改后引用表增加或修改后行行的值的值,包包含所有列的信息含所有列的信息 :old 引用表修改前引用表修改前行行的值,包含所的值,包含所有列的信息有列的信息Neusoft Institute of InformationORACLE By liqiang觸發(fā)器組合使用觸發(fā)器組合使用l各種各種DML觸發(fā)器類型的組合使用觸發(fā)器類

6、型的組合使用 一個表上多個一個表上多個Insert、Update、Delete命命令的觸發(fā)器可以組合為單一的觸發(fā)器。令的觸發(fā)器可以組合為單一的觸發(fā)器。 采用采用條件謂詞條件謂詞inserting、updating、deleting進行數(shù)據(jù)庫操作的區(qū)分進行數(shù)據(jù)庫操作的區(qū)分。Neusoft Institute of InformationORACLE By liqiang觸發(fā)器組合使用觸發(fā)器組合使用(續(xù)續(xù))if inserting thenelsif updating thenEnd if;Neusoft Institute of InformationORACLE By liqiang觸發(fā)器編譯

7、和狀態(tài)觸發(fā)器編譯和狀態(tài)l編譯觸發(fā)器編譯觸發(fā)器: 創(chuàng)建成功自動編譯,狀態(tài)為創(chuàng)建成功自動編譯,狀態(tài)為有效有效創(chuàng)建有錯誤,狀態(tài)為創(chuàng)建有錯誤,狀態(tài)為無效無效與觸發(fā)器有關(guān)的表、存儲過程、函數(shù)被刪與觸發(fā)器有關(guān)的表、存儲過程、函數(shù)被刪除或修改,狀態(tài)為除或修改,狀態(tài)為無效無效重新編譯重新編譯: Alter trigger tr_name compile;l啟用、禁用啟用、禁用 Alter trigger tr_name enable|disable;Neusoft Institute of InformationORACLE By liqiang觸發(fā)器的限制觸發(fā)器的限制l在在DML語句中不能使用控制語句語句中不能使用控制語句COMMIT,ROLLBACK語句。語句

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論