![Oracle數(shù)據(jù)庫系統(tǒng)應用開發(fā)實用教程電子課件-第8章-存儲過程函數(shù)程序包與觸發(fā)器-_第1頁](http://file4.renrendoc.com/view/ab0d0db076f903f98abbfd29319dd19d/ab0d0db076f903f98abbfd29319dd19d1.gif)
![Oracle數(shù)據(jù)庫系統(tǒng)應用開發(fā)實用教程電子課件-第8章-存儲過程函數(shù)程序包與觸發(fā)器-_第2頁](http://file4.renrendoc.com/view/ab0d0db076f903f98abbfd29319dd19d/ab0d0db076f903f98abbfd29319dd19d2.gif)
![Oracle數(shù)據(jù)庫系統(tǒng)應用開發(fā)實用教程電子課件-第8章-存儲過程函數(shù)程序包與觸發(fā)器-_第3頁](http://file4.renrendoc.com/view/ab0d0db076f903f98abbfd29319dd19d/ab0d0db076f903f98abbfd29319dd19d3.gif)
![Oracle數(shù)據(jù)庫系統(tǒng)應用開發(fā)實用教程電子課件-第8章-存儲過程函數(shù)程序包與觸發(fā)器-_第4頁](http://file4.renrendoc.com/view/ab0d0db076f903f98abbfd29319dd19d/ab0d0db076f903f98abbfd29319dd19d4.gif)
![Oracle數(shù)據(jù)庫系統(tǒng)應用開發(fā)實用教程電子課件-第8章-存儲過程函數(shù)程序包與觸發(fā)器-_第5頁](http://file4.renrendoc.com/view/ab0d0db076f903f98abbfd29319dd19d/ab0d0db076f903f98abbfd29319dd19d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第8章:子程序、程序包和觸發(fā)器1第8章:子程序、程序包和觸發(fā)器1任務分解
任務1:通過過程統(tǒng)計不同部門的員工人數(shù)。任務2:通過過程查詢雇員信息。任務3:通過函數(shù)查詢雇員信息。任務4:使用程序包。任務5:通過觸發(fā)器進行安全性檢查。任務6:通過觸發(fā)器跟蹤修改雇員信息的行為。任務7:通過觸發(fā)器為主鍵生成自增序列號。任務8:通過觸發(fā)器在視圖中插入數(shù)據(jù)。任務9:通過觸發(fā)器跟蹤用戶新建數(shù)據(jù)庫行為。任務10:通過觸發(fā)器跟蹤用戶信息。任務分解任務1:通過過程統(tǒng)計不同部門的員工人數(shù)。23任務5任務5.通過觸發(fā)器進行安全性檢查。3任務5任務5.通過觸發(fā)器進行安全3觸發(fā)器作用觸發(fā)器比數(shù)據(jù)庫本身標準的功能有更精細和更復雜的數(shù)據(jù)控制能力,主要用于維護那些通過創(chuàng)建表的聲明約束不可能實現(xiàn)的復雜的完整性約束,并對特定事件進行監(jiān)控、響應和審計等。觸發(fā)器作用4觸發(fā)器示例體驗
【例8.26】在emp表上建立觸發(fā)器。在對emp表插入,更新,刪除之前觸發(fā),目的是不允許在周末更改表。
觸發(fā)器示例體驗 【例8.26】在emp表上建立觸發(fā)器。在對e5觸發(fā)器示例體驗觸發(fā)器示例體驗6觸發(fā)器概述觸發(fā)器是關(guān)系數(shù)據(jù)庫系統(tǒng)提供的一項技術(shù),當特定對象上特定事件出現(xiàn)時,由系統(tǒng)自動觸發(fā)執(zhí)行的代碼塊。數(shù)據(jù)庫觸發(fā)器能夠執(zhí)行的功能包括以下幾方面:①自動生成派生數(shù)據(jù)。②實現(xiàn)復雜的數(shù)據(jù)完整性規(guī)則。③實施更復雜的安全性檢查。④提供審計和日志記錄。⑤啟用復雜的業(yè)務邏輯。觸發(fā)器概述7CREATE[ORREPLACE]TRIGGER觸發(fā)器名觸發(fā)時間觸發(fā)事件ON對象名[REFERENCING_CLAUSE][FOREACHROW][FOREACHROW[WHENTRIGGER_CONDITION]]PL/SQL語句觸發(fā)器的基本語法規(guī)則CREATE[ORREPLACE]TRIGGER觸發(fā)8規(guī)則說明觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,取值有:{BEFORE|AFTER|INSTEADOF}觸發(fā)事件:指明哪些數(shù)據(jù)庫動作會觸發(fā)此觸發(fā)器,包括 {DML_EVENT|DDL_EVENT|DATABASE_EVENT},對象名:取值包括{[TABLE|VIEW]|[SCHEMA.]|[DATABASE]}REFERENCING_CLAUSE:用來引用正在處于修改狀態(tài)下表中對應行的數(shù)據(jù)。FOREACHROW:觸發(fā)器對表中的每一行執(zhí)行一次,即為行級觸發(fā)器。WHEN子句代表觸發(fā)器限制條件規(guī)則說明觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,取值有:9觸發(fā)器類型
Oracle具有不同類型的觸發(fā)器,可以完成不同的任務,按照觸發(fā)器的觸發(fā)事件和觸發(fā)對象的不同,觸發(fā)器一般分為以下幾種:①DML觸發(fā)器②INSTEADOF觸發(fā)器③DDL觸發(fā)器④系統(tǒng)觸發(fā)器觸發(fā)器類型10DML觸發(fā)器建立在基本表上的觸發(fā)器稱為DML觸發(fā)器。DML觸發(fā)器建立在基本表上的觸發(fā)器稱為DML觸發(fā)器。1112DML觸發(fā)器觸發(fā)器時機BEFORE觸發(fā)器AFTER觸發(fā)器。觸發(fā)器所依賴的表對象不同語句級觸發(fā)器行級觸發(fā)器foreachrow12DML觸發(fā)器觸發(fā)器時機12DML觸發(fā)器BEFORE觸發(fā)器和AFTER觸發(fā)器。執(zhí)行的順序:BEFORE觸發(fā)器--約束檢查--更新表--AFTER觸發(fā)器。BEFORE觸發(fā)器是在約束之前執(zhí)行的,通常用于:設(shè)置或修改被更新或插入的列值。檢查復雜的安全規(guī)則,如限制時間等。增強商業(yè)應用規(guī)則。DML觸發(fā)器BEFORE觸發(fā)器和AFTER觸發(fā)器。執(zhí)行的13DML觸發(fā)器AFTER觸發(fā)器是在BEFORE觸發(fā)器、約束檢查以及更新表后才執(zhí)行的。一般用于:用戶信息的審計。導出數(shù)據(jù)的生成,如果導出數(shù)據(jù)是存儲到其他表中,而不是觸發(fā)器所依賴的表,則使用AFTER;如果導出數(shù)據(jù)是存儲到當前觸發(fā)器依賴的表,則觸發(fā)器必須定義成BEFORE觸發(fā)器。遠程數(shù)據(jù)的復制。DML觸發(fā)器AFTER觸發(fā)器是在BEFORE觸發(fā)器、約束14語句級觸發(fā)器觸發(fā)器的語句中未使用FOREACHROW子句。語句級觸發(fā)器與INSERT、DELETE、UPDATE或者組合上進行關(guān)聯(lián)。語句觸發(fā)器都只針對指定語句激活一次。語句級觸發(fā)器觸發(fā)器的語句中未使用FOREACHROW子句15實訓5①掌握語句級觸發(fā)器的原理。②語句級觸發(fā)器的編寫方法。③測試語句級觸發(fā)器是否生效。
完成了任務5,請嘗試實訓5實訓5①掌握語句級觸發(fā)器的原理。完成了任務5,請嘗試實訓51617任務6任務6.通過觸發(fā)器跟蹤修改雇員信息的行為17任務6任務6.通過觸發(fā)器跟蹤修改雇員信息的行為17任務6任務618任務6任務61920任務6
思考:上面的例子中,只記錄了操作的用戶名和時間,如果需要記錄下用戶的動作,該如何解決?20任務6思考:上面的例子中,只記錄了操作的用戶名和時20任務6DML觸發(fā)器有三個可用來確認執(zhí)行何種操作的邏輯表達式。任務6DML觸發(fā)器有三個可用來確認執(zhí)行何種操作的邏輯表達式。21任務6或者任務6或者22任務6任務623任務6任務624實訓6①掌握語句級觸發(fā)器的原理。②練習:建立一觸發(fā)器,用于審計對HR用戶的jobs表的操作行為。
完成了任務6,請嘗試實訓6實訓6①掌握語句級觸發(fā)器的原理。完成了任務6,請嘗試實訓62526任務7任務7.通過行級觸發(fā)器為主鍵生成自增序列號。
26任務7任務7.通過行級觸發(fā)器為主鍵生成自增2627什么是行級觸發(fā)器
進一步思考:上面的例子中,如何使觸發(fā)器在執(zhí)行過程中每行觸發(fā)一次?工作情境:引入行級觸發(fā)器。27什么是行級觸發(fā)器進一步思考:上面的例子中,如何使觸27行級觸發(fā)器行級觸發(fā)器是指執(zhí)行DML操作時,每操作一行觸發(fā)器就執(zhí)行一次。行級觸發(fā)器使用WHEN條件,用于控制觸發(fā)器的執(zhí)行。WHEN子句的語法為:WHENtrigger_condition說明:trigger_condition是邏輯表達式,該表達式將為每行求值。行級觸發(fā)器行級觸發(fā)器是指執(zhí)行DML操作時,每操作一行觸發(fā)器就28:old和:new標識符行級觸發(fā)器中引入了:old和:new兩個標識符:old和:new記錄可以在trigger_condition內(nèi)部引用,但不需使用冒號。該冒號只在觸發(fā)器體內(nèi)有效。:old和:new標識符行級觸發(fā)器中引入了:old和:new29每行觸發(fā)【例8.29】重新修改【例8.28】觸發(fā)器。每行觸發(fā)【例8.29】重新修改【例8.28】觸發(fā)器。30測試測試31任務7:為主鍵生成自增序列號任務7:為主鍵生成自增序列號32實訓7①掌握行級觸發(fā)器的原理。②行級觸發(fā)器的編寫方法。練習:創(chuàng)建一行級觸發(fā)器,為學生信息表的主鍵生成自增序列號。完成了任務7,請嘗試實訓7實訓7①掌握行級觸發(fā)器的原理。完成了任務7,請嘗試實訓73334任務8任務8.通過觸發(fā)器在視圖中插入數(shù)據(jù)。34任務8任務8.通過觸發(fā)器在視圖中34任務8替代觸發(fā)器是行級觸發(fā)器。替代觸發(fā)器用INSTEADOF來規(guī)定,它執(zhí)行一個替代操作來代替對視圖的操作,對視圖的操作最終會轉(zhuǎn)換為基本表的操作。問題:對視圖view_emp_dept進行插入數(shù)據(jù),結(jié)果報錯。這種情況該如何解決?(視圖view_emp_dept的數(shù)據(jù)來源于emp表的字段empno,ename,job,emp.deptno,條件是emp.deptno=dept.deptno)
(1)創(chuàng)建視圖(2)對視圖進行插入操作(3)在視圖創(chuàng)建INSTEADOF觸發(fā)器(4)重新對視圖進行插入操作任務8替代觸發(fā)器是行級觸發(fā)器。替代觸發(fā)器用INSTEADO35任務8任務836任務8任務837實訓8①掌握替代觸發(fā)器的原理。②創(chuàng)建替代觸發(fā)器。③替代觸發(fā)器的測試方法。
完成了任務8,請嘗試實訓8實訓8①掌握替代觸發(fā)器的原理。完成了任務8,請嘗試實訓83839任務9任務9.通過觸發(fā)器跟蹤用戶新建數(shù)據(jù)庫對象的行為。39任務9任務9.通過觸發(fā)器跟蹤用戶39任務9DDL觸發(fā)器是建立在模式級操作上的觸發(fā)器。激發(fā)DDL操作包括:CREATE、ALTER、DROP等。作用主要是防止DDL操作引起的破壞或提供相應的安全監(jiān)控。DDL觸發(fā)器通過事件屬性函數(shù)獲得有關(guān)觸發(fā)事件的信息。任務9DDL觸發(fā)器是建立在模式級操作上的觸發(fā)器。激發(fā)DDL操40任務9【例8.32】創(chuàng)建DDL觸發(fā)器,審計記錄用戶所創(chuàng)建對象的信息(1)創(chuàng)建審計記錄表(2)建立DDL觸發(fā)器logcreation(3)測試DDL觸發(fā)器任務9【例8.32】創(chuàng)建DDL觸發(fā)器,審計記錄用戶所創(chuàng)建41任務9任務942實訓9①掌握DDL觸發(fā)器的原理。②創(chuàng)建DDL觸發(fā)器。③DDL觸發(fā)器的測試方法。
完成了任務9,請嘗試實訓9實訓9①掌握DDL觸發(fā)器的原理。完成了任務9,請嘗試實訓94344任務10任務10.通過觸發(fā)器跟蹤用戶登錄信息。44任務10任務10.通過觸發(fā)器跟蹤用戶44任務10系統(tǒng)觸發(fā)器是建立在數(shù)據(jù)庫級別上的觸發(fā)器,其觸發(fā)事件包括服務器的啟動或關(guān)閉,用戶的登錄或退出,以及服務器錯誤等。創(chuàng)建系統(tǒng)觸發(fā)器的語法:任務10系統(tǒng)觸發(fā)器是建立在數(shù)據(jù)庫級別上的觸發(fā)器,其觸發(fā)事件包45任務10database_event_list是一個或多個數(shù)據(jù)庫事件,如下表:任務10database_event_list是一個或多個數(shù)46任務10例如:創(chuàng)建當數(shù)據(jù)庫啟動時的系統(tǒng)觸發(fā)器結(jié)構(gòu)如下:任務10例如:創(chuàng)建當數(shù)據(jù)庫啟動時的系統(tǒng)觸發(fā)器結(jié)構(gòu)如下:47任務10【例8.34】創(chuàng)建系統(tǒng)觸發(fā)器,記錄當次啟動數(shù)據(jù)庫以來登錄的用戶。(1)創(chuàng)建一個用戶登錄的日志記錄表(包含登錄用戶名、登錄時間、數(shù)據(jù)庫名字和實例號)(2)授予創(chuàng)建觸發(fā)器的用戶administerdatabasetrigger權(quán)限(注意:普通用戶需具有此權(quán)限才能創(chuàng)建系統(tǒng)觸發(fā)器)
grantadministerdatabasetriggertoscott;(3)創(chuàng)建系統(tǒng)啟動的觸發(fā)器(4)創(chuàng)建登錄系統(tǒng)的觸發(fā)器(5)測試任務10【例8.34】創(chuàng)建系統(tǒng)觸發(fā)器,記錄當次啟動數(shù)據(jù)庫以48任務10系統(tǒng)觸發(fā)器的數(shù)據(jù)庫事件屬性函數(shù)獲得有關(guān)觸發(fā)事件信息。任務10系統(tǒng)觸發(fā)器的數(shù)據(jù)庫事件屬性函數(shù)獲得有關(guān)觸發(fā)事件信息。49任務10任務1050任務10
總結(jié):在本例中使用了兩個系統(tǒng)觸發(fā)器,分別為系統(tǒng)啟動之后和登錄之后觸發(fā)(afterstartup和afterlogon),登錄觸發(fā)器用于記錄用戶登錄日志,啟動觸發(fā)器用于刪除歷史登錄日志,只記錄當此次登錄情況。任務10總結(jié):在本例中使用了兩個系統(tǒng)觸發(fā)器,分別為系統(tǒng)啟51實訓10①掌握DDL觸發(fā)器的原理。②創(chuàng)建DDL觸發(fā)器。③DDL觸發(fā)器的測試方法。
完成了任務10,請嘗試實訓10實訓10①掌握DDL觸發(fā)器的原理。完成了任務10,請嘗試實52管理觸發(fā)器1.激活和禁用觸發(fā)器ALTERTRIGGERtriggername{DISABLE|ENABLE};2.修改觸發(fā)器使用CREATEORREPLACETRIGGER語句直接修改觸發(fā)器主體內(nèi)容,如有同名觸發(fā)器3.重新編譯觸發(fā)器4.查看觸發(fā)器的有關(guān)信息
ALTERTRIGGERtrigger_nameCOMPILE;
5.刪除觸發(fā)器DROPTRIGGERtriggername;管理觸發(fā)器1.激活和禁用觸發(fā)器5354作業(yè)請登錄精品課程-》 2009年國家級精品課程大型數(shù)據(jù)庫管理系統(tǒng)朱亞興計算機工程技術(shù)學院-》 網(wǎng)絡(luò)課程-》 在線學習找到相應的“學習情境”進行練習54作業(yè)請登錄54小結(jié)過程、函數(shù)、程序包和觸發(fā)器都是命名的PL/SQL塊,具有模塊化、可重用、易維護性和安全性強等優(yōu)點。過程能夠完成一項或多項特定任務,具有3種類型參數(shù),可以靈活地進行傳入值和返回值。函數(shù)向調(diào)用程序返回一個值,或者借助于PL/SQL賦值語句或條件語句。過程或函數(shù)在首次執(zhí)行時被存儲到內(nèi)存中,然后被其他模塊調(diào)用。程序包是PL/SQL對象的集合。包括程序包規(guī)范和程序包體。觸發(fā)器是當滿足特定事件時自動執(zhí)行的存儲過程。按照觸發(fā)事件和觸發(fā)對象的不同,觸發(fā)器一般分為以下幾種:DML觸發(fā)器、替代觸發(fā)器、DDL觸發(fā)器和系統(tǒng)觸發(fā)器。小結(jié)過程、函數(shù)、程序包和觸發(fā)器都是命名的PL/SQL塊,具有55謝謝!56謝謝!565657第8章:子程序、程序包和觸發(fā)器1第8章:子程序、程序包和觸發(fā)器57任務分解
任務1:通過過程統(tǒng)計不同部門的員工人數(shù)。任務2:通過過程查詢雇員信息。任務3:通過函數(shù)查詢雇員信息。任務4:使用程序包。任務5:通過觸發(fā)器進行安全性檢查。任務6:通過觸發(fā)器跟蹤修改雇員信息的行為。任務7:通過觸發(fā)器為主鍵生成自增序列號。任務8:通過觸發(fā)器在視圖中插入數(shù)據(jù)。任務9:通過觸發(fā)器跟蹤用戶新建數(shù)據(jù)庫行為。任務10:通過觸發(fā)器跟蹤用戶信息。任務分解任務1:通過過程統(tǒng)計不同部門的員工人數(shù)。5859任務5任務5.通過觸發(fā)器進行安全性檢查。3任務5任務5.通過觸發(fā)器進行安全59觸發(fā)器作用觸發(fā)器比數(shù)據(jù)庫本身標準的功能有更精細和更復雜的數(shù)據(jù)控制能力,主要用于維護那些通過創(chuàng)建表的聲明約束不可能實現(xiàn)的復雜的完整性約束,并對特定事件進行監(jiān)控、響應和審計等。觸發(fā)器作用60觸發(fā)器示例體驗
【例8.26】在emp表上建立觸發(fā)器。在對emp表插入,更新,刪除之前觸發(fā),目的是不允許在周末更改表。
觸發(fā)器示例體驗 【例8.26】在emp表上建立觸發(fā)器。在對e61觸發(fā)器示例體驗觸發(fā)器示例體驗62觸發(fā)器概述觸發(fā)器是關(guān)系數(shù)據(jù)庫系統(tǒng)提供的一項技術(shù),當特定對象上特定事件出現(xiàn)時,由系統(tǒng)自動觸發(fā)執(zhí)行的代碼塊。數(shù)據(jù)庫觸發(fā)器能夠執(zhí)行的功能包括以下幾方面:①自動生成派生數(shù)據(jù)。②實現(xiàn)復雜的數(shù)據(jù)完整性規(guī)則。③實施更復雜的安全性檢查。④提供審計和日志記錄。⑤啟用復雜的業(yè)務邏輯。觸發(fā)器概述63CREATE[ORREPLACE]TRIGGER觸發(fā)器名觸發(fā)時間觸發(fā)事件ON對象名[REFERENCING_CLAUSE][FOREACHROW][FOREACHROW[WHENTRIGGER_CONDITION]]PL/SQL語句觸發(fā)器的基本語法規(guī)則CREATE[ORREPLACE]TRIGGER觸發(fā)64規(guī)則說明觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,取值有:{BEFORE|AFTER|INSTEADOF}觸發(fā)事件:指明哪些數(shù)據(jù)庫動作會觸發(fā)此觸發(fā)器,包括 {DML_EVENT|DDL_EVENT|DATABASE_EVENT},對象名:取值包括{[TABLE|VIEW]|[SCHEMA.]|[DATABASE]}REFERENCING_CLAUSE:用來引用正在處于修改狀態(tài)下表中對應行的數(shù)據(jù)。FOREACHROW:觸發(fā)器對表中的每一行執(zhí)行一次,即為行級觸發(fā)器。WHEN子句代表觸發(fā)器限制條件規(guī)則說明觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,取值有:65觸發(fā)器類型
Oracle具有不同類型的觸發(fā)器,可以完成不同的任務,按照觸發(fā)器的觸發(fā)事件和觸發(fā)對象的不同,觸發(fā)器一般分為以下幾種:①DML觸發(fā)器②INSTEADOF觸發(fā)器③DDL觸發(fā)器④系統(tǒng)觸發(fā)器觸發(fā)器類型66DML觸發(fā)器建立在基本表上的觸發(fā)器稱為DML觸發(fā)器。DML觸發(fā)器建立在基本表上的觸發(fā)器稱為DML觸發(fā)器。6768DML觸發(fā)器觸發(fā)器時機BEFORE觸發(fā)器AFTER觸發(fā)器。觸發(fā)器所依賴的表對象不同語句級觸發(fā)器行級觸發(fā)器foreachrow12DML觸發(fā)器觸發(fā)器時機68DML觸發(fā)器BEFORE觸發(fā)器和AFTER觸發(fā)器。執(zhí)行的順序:BEFORE觸發(fā)器--約束檢查--更新表--AFTER觸發(fā)器。BEFORE觸發(fā)器是在約束之前執(zhí)行的,通常用于:設(shè)置或修改被更新或插入的列值。檢查復雜的安全規(guī)則,如限制時間等。增強商業(yè)應用規(guī)則。DML觸發(fā)器BEFORE觸發(fā)器和AFTER觸發(fā)器。執(zhí)行的69DML觸發(fā)器AFTER觸發(fā)器是在BEFORE觸發(fā)器、約束檢查以及更新表后才執(zhí)行的。一般用于:用戶信息的審計。導出數(shù)據(jù)的生成,如果導出數(shù)據(jù)是存儲到其他表中,而不是觸發(fā)器所依賴的表,則使用AFTER;如果導出數(shù)據(jù)是存儲到當前觸發(fā)器依賴的表,則觸發(fā)器必須定義成BEFORE觸發(fā)器。遠程數(shù)據(jù)的復制。DML觸發(fā)器AFTER觸發(fā)器是在BEFORE觸發(fā)器、約束70語句級觸發(fā)器觸發(fā)器的語句中未使用FOREACHROW子句。語句級觸發(fā)器與INSERT、DELETE、UPDATE或者組合上進行關(guān)聯(lián)。語句觸發(fā)器都只針對指定語句激活一次。語句級觸發(fā)器觸發(fā)器的語句中未使用FOREACHROW子句71實訓5①掌握語句級觸發(fā)器的原理。②語句級觸發(fā)器的編寫方法。③測試語句級觸發(fā)器是否生效。
完成了任務5,請嘗試實訓5實訓5①掌握語句級觸發(fā)器的原理。完成了任務5,請嘗試實訓57273任務6任務6.通過觸發(fā)器跟蹤修改雇員信息的行為17任務6任務6.通過觸發(fā)器跟蹤修改雇員信息的行為73任務6任務674任務6任務67576任務6
思考:上面的例子中,只記錄了操作的用戶名和時間,如果需要記錄下用戶的動作,該如何解決?20任務6思考:上面的例子中,只記錄了操作的用戶名和時76任務6DML觸發(fā)器有三個可用來確認執(zhí)行何種操作的邏輯表達式。任務6DML觸發(fā)器有三個可用來確認執(zhí)行何種操作的邏輯表達式。77任務6或者任務6或者78任務6任務679任務6任務680實訓6①掌握語句級觸發(fā)器的原理。②練習:建立一觸發(fā)器,用于審計對HR用戶的jobs表的操作行為。
完成了任務6,請嘗試實訓6實訓6①掌握語句級觸發(fā)器的原理。完成了任務6,請嘗試實訓68182任務7任務7.通過行級觸發(fā)器為主鍵生成自增序列號。
26任務7任務7.通過行級觸發(fā)器為主鍵生成自增8283什么是行級觸發(fā)器
進一步思考:上面的例子中,如何使觸發(fā)器在執(zhí)行過程中每行觸發(fā)一次?工作情境:引入行級觸發(fā)器。27什么是行級觸發(fā)器進一步思考:上面的例子中,如何使觸83行級觸發(fā)器行級觸發(fā)器是指執(zhí)行DML操作時,每操作一行觸發(fā)器就執(zhí)行一次。行級觸發(fā)器使用WHEN條件,用于控制觸發(fā)器的執(zhí)行。WHEN子句的語法為:WHENtrigger_condition說明:trigger_condition是邏輯表達式,該表達式將為每行求值。行級觸發(fā)器行級觸發(fā)器是指執(zhí)行DML操作時,每操作一行觸發(fā)器就84:old和:new標識符行級觸發(fā)器中引入了:old和:new兩個標識符:old和:new記錄可以在trigger_condition內(nèi)部引用,但不需使用冒號。該冒號只在觸發(fā)器體內(nèi)有效。:old和:new標識符行級觸發(fā)器中引入了:old和:new85每行觸發(fā)【例8.29】重新修改【例8.28】觸發(fā)器。每行觸發(fā)【例8.29】重新修改【例8.28】觸發(fā)器。86測試測試87任務7:為主鍵生成自增序列號任務7:為主鍵生成自增序列號88實訓7①掌握行級觸發(fā)器的原理。②行級觸發(fā)器的編寫方法。練習:創(chuàng)建一行級觸發(fā)器,為學生信息表的主鍵生成自增序列號。完成了任務7,請嘗試實訓7實訓7①掌握行級觸發(fā)器的原理。完成了任務7,請嘗試實訓78990任務8任務8.通過觸發(fā)器在視圖中插入數(shù)據(jù)。34任務8任務8.通過觸發(fā)器在視圖中90任務8替代觸發(fā)器是行級觸發(fā)器。替代觸發(fā)器用INSTEADOF來規(guī)定,它執(zhí)行一個替代操作來代替對視圖的操作,對視圖的操作最終會轉(zhuǎn)換為基本表的操作。問題:對視圖view_emp_dept進行插入數(shù)據(jù),結(jié)果報錯。這種情況該如何解決?(視圖view_emp_dept的數(shù)據(jù)來源于emp表的字段empno,ename,job,emp.deptno,條件是emp.deptno=dept.deptno)
(1)創(chuàng)建視圖(2)對視圖進行插入操作(3)在視圖創(chuàng)建INSTEADOF觸發(fā)器(4)重新對視圖進行插入操作任務8替代觸發(fā)器是行級觸發(fā)器。替代觸發(fā)器用INSTEADO91任務8任務892任務8任務893實訓8①掌握替代觸發(fā)器的原理。②創(chuàng)建替代觸發(fā)器。③替代觸發(fā)器的測試方法。
完成了任務8,請嘗試實訓8實訓8①掌握替代觸發(fā)器的原理。完成了任務8,請嘗試實訓89495任務9任務9.通過觸發(fā)器跟蹤用戶新建數(shù)據(jù)庫對象的行為。39任務9任務9.通過觸發(fā)器跟蹤用戶95任務9DDL觸發(fā)器是建立在模式級操作上的觸發(fā)器。激發(fā)DDL操作包括:CREATE、ALTER、DROP等。作用主要是防止DDL操作引起的破壞或提供相應的安全監(jiān)控。DDL觸發(fā)器通過事件屬性函數(shù)獲得有關(guān)觸發(fā)事件的信息。任務9DDL觸發(fā)器是建立在模式級操作上的觸發(fā)器。激發(fā)DDL操96任務9【例8.32】創(chuàng)建DDL觸發(fā)器,審計記錄用戶所創(chuàng)建對象的信息(1)創(chuàng)建審計記錄表(2)建立DDL觸發(fā)器logcreation(3)測試DDL觸發(fā)器任務9【例8.32】創(chuàng)建DDL觸發(fā)器,審計記錄用戶所創(chuàng)建97任務9任務998實訓9①掌握DDL觸發(fā)器的原理。②創(chuàng)建DDL觸發(fā)器。③DDL觸發(fā)器的測試方法。
完成了任務9,請嘗試實訓9實訓9①掌握DDL觸發(fā)器的原理。完成了任務9,請嘗試實訓999100任務10任務10.通過觸發(fā)器跟蹤用戶登錄信息。44任務10任務10.通過觸發(fā)器跟蹤用戶100任務10系統(tǒng)觸發(fā)器是建立在數(shù)據(jù)庫級別上的觸發(fā)器,其觸發(fā)事件包括服務器的啟動或關(guān)閉,用戶的登錄或退出,以及服務器錯誤等。創(chuàng)建系統(tǒng)觸發(fā)器的語法:任務10系統(tǒng)觸發(fā)器是建立在數(shù)據(jù)庫級別上的觸發(fā)器,其觸發(fā)事件包101任務10database_event_list是一個或多個數(shù)據(jù)庫事件,如下表:任務10database_event_list是一個或多個數(shù)102任務10例如:創(chuàng)建當數(shù)據(jù)庫啟動時的系統(tǒng)觸發(fā)器結(jié)構(gòu)如下:任務10例如:創(chuàng)建當數(shù)據(jù)庫啟動時的系統(tǒng)觸發(fā)器結(jié)構(gòu)如下:103任務10【例8.34】創(chuàng)建系統(tǒng)觸發(fā)器,記錄當次啟動數(shù)據(jù)庫以來登錄的用戶。(1)創(chuàng)建一個用戶登錄的日志記錄表(包含登錄用戶名、登錄時間、數(shù)據(jù)庫名字和實例號)(2)授予創(chuàng)建觸發(fā)器的用戶administerdatabasetrigger權(quán)限(注意:普通用戶需具有此權(quán)限才能創(chuàng)建系統(tǒng)觸發(fā)器)
grantad
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年院線經(jīng)營項目規(guī)劃申請報告模板
- 2025年防結(jié)皮劑項目提案報告模板
- 2025年會議場地租賃合同書模板
- 2025年勞務派遣人員安全生產(chǎn)責任協(xié)議
- 2025年產(chǎn)品銷售合同范本官方
- 2025年鐵軌建設(shè)項目立項申請報告模范
- 2025年節(jié)日禮品項目規(guī)劃申請報告模板
- 2025年規(guī)劃管理服務項目申請報告
- 2025年臨時聘用人員安全生產(chǎn)協(xié)議
- 2025年中信銀行信用卡還款合同
- 常見食物的嘌呤含量表匯總
- 人教版數(shù)學八年級下冊同步練習(含答案)
- SB/T 10752-2012馬鈴薯雪花全粉
- 2023年湖南高速鐵路職業(yè)技術(shù)學院高職單招(英語)試題庫含答案解析
- 濕型砂中煤粉作用及檢測全解析
- 積累運用表示動作的詞語課件
- 機動車登記證書英文證書模板
- 第8課《山山水水》教學設(shè)計(新人教版小學美術(shù)六年級上冊)
- T∕ZSQX 008-2020 建設(shè)工程全過程質(zhì)量行為導則
- 質(zhì)量管理體系基礎(chǔ)知識培訓-2016
- 甲醇催化劑說明書
評論
0/150
提交評論