




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Oracle觸發(fā)器語法(一) 一 Oracle觸發(fā)器語法觸發(fā)器是特定事件出現(xiàn)的時候,自動執(zhí)行的代碼塊。類似于存儲過程,觸發(fā)器與存儲過程的區(qū)別在于:存儲過程是由用戶或應(yīng)用程序顯式調(diào)用的,而觸發(fā)器是不能被直接調(diào)用的。功能:1、 允許/限制對表的修改2、 自動生成派生列,比如自增字段3、 強制數(shù)據(jù)一致性4、 提供審計和日志記錄5、 防止無效的事務(wù)處理6、 啟用復(fù)雜的業(yè)務(wù)邏輯觸發(fā)器觸發(fā)時間有兩種:after和before。1、觸發(fā)器的語法:CREATE OR REPLACE TIGGER觸發(fā)器名 觸發(fā)時間 觸發(fā)事件ON表名FOR EACH ROWBEGINpl/sql語句END其中:觸發(fā)器名:觸發(fā)器對
2、象的名稱。由于觸發(fā)器是數(shù)據(jù)庫自動執(zhí)行的,因此該名稱只是一個名稱,沒有實質(zhì)的用途。觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,該值可?。篵efore-表示在數(shù)據(jù)庫動作之前觸發(fā)器執(zhí)行;after-表示在數(shù)據(jù)庫動作之后出發(fā)器執(zhí)行。觸發(fā)事件:指明哪些數(shù)據(jù)庫動作會觸發(fā)此觸發(fā)器: insert:數(shù)據(jù)庫插入會觸發(fā)此觸發(fā)器;Oracle觸發(fā)器語法(二) update:數(shù)據(jù)庫修改會觸發(fā)此觸發(fā)器; delete:數(shù)據(jù)庫刪除會觸發(fā)此觸發(fā)器。表 名:數(shù)據(jù)庫觸發(fā)器所在的表。for each row:對表的每一行觸發(fā)器執(zhí)行一次。如果沒有這一選項,則只對整個表執(zhí)行一次。2、舉例:下面的觸發(fā)器在更新表auths之前觸發(fā),目的是不允許在周末
3、修改表:createtriggerauth_securebeforeinsertorupdateordelete/對整表更新前觸發(fā) onauthsbeginif(to_char(sysdate,DY)=SUNRAISE_APPLICATION_ERROR(-20600,不能在周末修改表auths);endif;end例子:CREATEORREPLACETRIGGERCRM.T_SUB_USERINFO_AUR_NAMEAFTERUPDATEOFSTAFF_NAME ONCRM.T_SUB_USERINFOREFERENCINGOLDASOLDNEWASNEWFOREACHROWdeclareb
4、eginif:NEW.STAFF_NAME!=:OLD.STAFF_NAMEthenbegin 客戶投訴 updateT_COMPLAINT_MANAGEsetSERVE_NAME=:NEW.STAFF_NAMEwhereSERVE_SEED=:OLD.SEED; 客戶關(guān)懷 updateT_CUSTOMER_CAREsetEXECUTOR_NAME=:NEW.STAFF_NAME whereEXECUTOR_SEED=:OLD.SEED; 客戶服務(wù)updateT_CUSTOMER_SERVICEsetEXECUTOR_NAME=:NEW.STAFF_NAME whereEXECUTOR_SEE
5、D=:OLD.SEED;end;endif;endT_sub_userinfo_aur_name;/Oracle觸發(fā)器語法(三) 二 Oracle觸發(fā)器詳解開始: createtriggerbiufer_employees_department_id beforeinsertorupdateofdepartment_idonemployeesreferencingoldasold_valuenewasnew_valueforeachrowwhen(new_value.department_id80)begin:new_mission_pct:=0;end;/1、觸發(fā)器的組成部分:1、 觸發(fā)器名
6、稱2、 觸發(fā)語句3、 觸發(fā)器限制4、 觸發(fā)操作1.1、觸發(fā)器名稱 createtriggerbiufer_employees_department_id命名習(xí)慣: biufer(beforeinsertupdateforeachrow)employees表名department_id列名1.2、觸發(fā)語句比如:表或視圖上的DML語句DDL語句Oracle觸發(fā)器語法(四) 數(shù)據(jù)庫關(guān)閉或啟動,startup shutdown等等 beforeinsertorupdate ofdepartment_idonemployeesreferencingoldasold_valuenewasnew_value
7、foreachrow說明:1、 無論是否規(guī)定了department_id,對employees表進行insert的時候2、 對employees表的department_id列進行update的時候1.3、觸發(fā)器限制 when(new_value.department_id80)限制不是必須的。此例表示如果列department_id不等于80的時候,觸發(fā)器就會執(zhí)行。其中的new_value是代表更新之后的值。1.4、觸發(fā)操作是觸發(fā)器的主體begin :new_mission_pct:=0;end;主體很簡單,就是將更新后的commission_pct列置為0觸發(fā):insertintoemployees(employee_id,last_name,first_name,hire_date,job_id,email, department_id,salary,commission_pct)values(12345,Chen,Donny,sys
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 淺談新媒體藝術(shù)創(chuàng)作中動畫形象與品牌IP的設(shè)計研究
- 7月份分級護理質(zhì)控
- 市政工程基礎(chǔ)培訓(xùn)教材
- 內(nèi)科期末網(wǎng)課復(fù)習(xí)指南
- 茶樓與餐飲業(yè)聯(lián)營合作協(xié)議范本
- 餐廳服務(wù)員提成合同范本
- 專業(yè)展覽布展設(shè)計與品牌宣傳合同
- 數(shù)字創(chuàng)意產(chǎn)業(yè)園區(qū)廠房租賃與文化創(chuàng)意合作合同
- 智能化住宅小區(qū)物業(yè)運營管理服務(wù)協(xié)議
- 商業(yè)綜合體場地承包經(jīng)營合同規(guī)范
- 【MOOC期末】《深度學(xué)習(xí)及其應(yīng)用》(復(fù)旦大學(xué))期末考試慕課答案
- 靜電放電(ESD)及其防護措施培訓(xùn)課件
- 食品營養(yǎng)學(xué)(暨南大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年暨南大學(xué)
- GB 19522-2024車輛駕駛?cè)藛T血液、呼氣酒精含量閾值與檢驗
- 超星爾雅學(xué)習(xí)通《心理行為與文化》章節(jié)測試含答案
- 基本藥物和國家基本藥物制度
- Photoshop二級考試試題及答案
- 裂隙燈數(shù)碼型slm說明書
- 機械識圖基礎(chǔ)知識
- 傷口基礎(chǔ)知識和濕性愈合理論
- 完整版重點環(huán)節(jié)重點人群與高危險因素管理與監(jiān)測計劃
評論
0/150
提交評論