国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號

Oracle數(shù)據(jù)庫中有關(guān)觸發(fā)器問題
2008-08-19   IT專家網(wǎng)

觸發(fā)器是一種特殊類型的存儲過程,它不同于存儲過程。觸發(fā)器主要是通過事件進行觸發(fā)而被執(zhí)行的,觸發(fā)器的觸發(fā)事件分可為3類,分別是DML事件、DDL事件和數(shù)據(jù)庫事件,而存儲過程可以通過存儲過程名字而被直接調(diào)用。當對某一表進行諸如UPDATE、 INSERT、 DELETE 這些操作時,SQL Server 就會自動執(zhí)行觸發(fā)器所定義的SQL 語句,從而確保對數(shù)據(jù)的處理必須符合由這些SQL 語句所定義的規(guī)則。

  觸發(fā)器是特定事件出現(xiàn)的時候,自動執(zhí)行的代碼塊。類似于存儲過程,但是用戶不能直接調(diào)用他們。

  觸發(fā)器功能

  1、 允許/限制對表的修改

  2、 自動生成派生列,比如自增字段

  3、 強制數(shù)據(jù)一致性

  4、 提供審計和日志記錄

  5、 防止無效的事務(wù)處理

  6、 啟用復(fù)雜的業(yè)務(wù)邏輯

  觸發(fā)器種類

  觸發(fā)器的種類可劃分為4種:1.數(shù)據(jù)操縱語言(DML)觸發(fā)器、2.替代(INSTEAD OF)觸發(fā)器、3.數(shù)據(jù)定義語言(DDL)觸發(fā)器、4.數(shù)據(jù)庫事件觸發(fā)器。

  數(shù)據(jù)操縱語言(DML)觸發(fā)器:簡稱DML觸發(fā)器,是定義在表上的觸發(fā)器,創(chuàng)建在表上。由DML事件引發(fā)的觸發(fā)器,編寫DML觸發(fā)器時的兩點要素是: 1.確定觸發(fā)的表,即在其上定義觸發(fā)器的表。2.確定觸發(fā)的事件,DML觸發(fā)器的觸發(fā)事件有INSERT、UPDATE和DELETE三種;替代觸發(fā)器,簡稱INSTEAD OF觸發(fā)器,創(chuàng)建在視圖上,用來替換對視圖進行的刪除、插入和修改操作; 數(shù)據(jù)定義語言(DDL)觸發(fā)器,簡稱DDL觸發(fā)器,定義在模式上,觸發(fā)事件是數(shù)據(jù)對象的創(chuàng)建和修改;數(shù)據(jù)庫事件觸發(fā)器,定義在整個數(shù)據(jù)庫或模式上,觸發(fā)事件是數(shù)據(jù)庫事件.

  ORACLE產(chǎn)生數(shù)據(jù)庫觸發(fā)器的語法為:

  CREATE [OR REPLACE] TRIGGER 觸發(fā)器名

  {BEFORE|AFTER|INSTEAD OF} 觸發(fā)事件1 [OR 觸發(fā)事件2...]

  ON 表名

  WHEN 觸發(fā)條件

  [FOR EACH ROW]

  DECLARE

  聲明部分

  BEGIN

  主體部分

  END;

  其中:

  觸發(fā)器名:觸發(fā)器對象的名稱。由于觸發(fā)器是數(shù)據(jù)庫自動執(zhí)行的,因此該名稱只是一個名稱,沒有實質(zhì)的用途。一個觸發(fā)器可由多個不同的數(shù)據(jù)操縱語言操作觸發(fā)。在觸發(fā)器中,可用INSERTING、DELETING、UPDATING謂詞來區(qū)別不同的數(shù)據(jù)操縱語言操作。這些謂詞可以在IF分支條件語句中作為判斷條件來使用。

  觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,該值可取, 觸發(fā)的時間有BEFORE和AFTER兩種,分別表示觸發(fā)動作發(fā)生在DML語句執(zhí)行之前和語句執(zhí)行之后。確定觸發(fā)級別,有語句級觸發(fā)器和行級觸發(fā)器兩種。語句級觸發(fā)器表示SQL語句只觸發(fā)一次觸發(fā)器,行級觸發(fā)器表示SQL語句影響的每一行都要觸發(fā)一次。

  Before:表示在數(shù)據(jù)庫動作之前觸發(fā)器執(zhí)行;在SQL語句的執(zhí)行過程中,如果存在行級BEFORE觸發(fā)器,則SQL語句在對每一行操作之前,都要先執(zhí)行一次行級BEFORE觸發(fā)器,然后才對行進行操作。如果存在行級AFTER觸發(fā)器,則SQL語句在對每一行操作之后,都要再執(zhí)行一次行級AFTER觸發(fā)器。

  after:表示在數(shù)據(jù)庫動作之后出發(fā)器執(zhí)行。如果存在語句級AFTER觸發(fā)器,則在SQL語句執(zhí)行完畢后,要最后執(zhí)行一次語句級AFTER觸發(fā)器。

  觸發(fā)事件:指明哪些數(shù)據(jù)庫動作會觸發(fā)此觸發(fā)器,指INSERT、DELETE或UPDATE事件,事件可以并行出現(xiàn),中間用OR連接;

  insert:數(shù)據(jù)庫插入會觸發(fā)此觸發(fā)器;

  update:數(shù)據(jù)庫修改會觸發(fā)此觸發(fā)器;

  delete:數(shù)據(jù)庫刪除會觸發(fā)此觸發(fā)器。

  表 名:數(shù)據(jù)庫觸發(fā)器所在的表。

  for each row:表示觸發(fā)器為行級觸發(fā)器,省略則為語句級觸發(fā)器,對表的每一行觸發(fā)器執(zhí)行一次。

  觸發(fā)器的創(chuàng)建者或具有DROP ANY TIRGGER系統(tǒng)權(quán)限的人才能刪除觸發(fā)器。刪除觸發(fā)器的語法如下:

  DROP TIRGGER 觸發(fā)器名

  可以通過命令設(shè)置觸發(fā)器的可用狀態(tài),使其暫時關(guān)閉或重新打開,即當觸發(fā)器暫時不用時,可以將其置成無效狀態(tài),在使用時重新打開。該命令語法如下:

  ALTER TRIGGER 觸發(fā)器名 {DISABLE|ENABLE}

  其中,DISABLE表示使觸發(fā)器失效,ENABLE表示使觸發(fā)器生效。

  同存儲過程類似,觸發(fā)器可以用SHOW ERRORS 檢查編譯錯誤。

  如果有多個觸發(fā)器被定義成為相同時間、相同事件觸發(fā),且最后定義的觸發(fā)器是有效的,則最后定義的觸發(fā)器被觸發(fā),其他觸發(fā)器不執(zhí)行。觸發(fā)器體內(nèi)禁止使用COMMIT、ROLLBACK、SAVEPOINT語句,也禁止直接或間接地調(diào)用含有上述語句的存儲過程。定義一個觸發(fā)器時要考慮上述多種情況,并根據(jù)具體的需要來決定觸發(fā)器的種類。

  觸發(fā)器的作用

  觸發(fā)器的主要作用就是其能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)的一致性。除此之外,觸發(fā)器還有其它許多不同的功能:

  (1) 強化約束(Enforce restriction)

  觸發(fā)器能夠?qū)崿F(xiàn)比CHECK 語句更為復(fù)雜的約束。

  (2) 跟蹤變化Auditing changes

  觸發(fā)器可以偵測數(shù)據(jù)庫內(nèi)的操作,從而不允許數(shù)據(jù)庫中未經(jīng)許可的指定更新和變化。

  (3) 級聯(lián)運行(Cascaded operation)。

  觸發(fā)器可以偵測數(shù)據(jù)庫內(nèi)的操作,并自動地級聯(lián)影響整個數(shù)據(jù)庫的各項內(nèi)容。例如,某個表上的觸發(fā)器中包含有對另外一個表的數(shù)據(jù)操作(如刪除,更新,插入)而該操作又導(dǎo)致該表上觸發(fā)器被觸發(fā)。

  (4) 存儲過程的調(diào)用(Stored procedure invocation)。

  為了響應(yīng)數(shù)據(jù)庫更新觸,發(fā)器可以調(diào)用一個或多個存儲過程,甚至可以通過外部過程的調(diào)用而在DBMS( 數(shù)據(jù)庫管理系統(tǒng))本身之外進行操作。

  由此可見,觸發(fā)器可以解決高級形式的業(yè)務(wù)規(guī)則或復(fù)雜行為限制以及實現(xiàn)定制記錄等一些方面的問題。例如,觸發(fā)器能夠找出某一表在數(shù)據(jù)修改前后狀態(tài)發(fā)生的差異,并根據(jù)這種差異執(zhí)行一定的處理。此外一個表的同一類型(INSERT、 UPDATE、 DELETE)的多個觸發(fā)器能夠?qū)ν环N數(shù)據(jù)操作采取多種不同的處理。

  總體而言,觸發(fā)器性能通常比較低

      當運行觸發(fā)器時,系統(tǒng)處理的大部分時間花費在參照其它表的這一處理上,因為這些表既不在內(nèi)存中也不在數(shù)據(jù)庫設(shè)備上,而刪除表和插入表總是位于內(nèi)存中。可見觸發(fā)器所參照的其它表的位置決定了操作要花費的時間長短。

熱詞搜索:

上一篇:綠色數(shù)據(jù)中心環(huán)保之路 需跨越三大障礙
下一篇:三種策略實現(xiàn)虛擬化環(huán)境價值最大化

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国产色爱av资源综合区| 亚洲精品乱码久久久久久蜜桃91| 国内精品伊人久久久久av影院 | 亚洲激情国产| 伊人久久大香线蕉av超碰演员| 欧美极品在线播放| 亚洲欧美日韩精品在线| 国内精品久久久久伊人av| 亚洲一区二区三区精品在线观看| 99日韩精品| 狼人天天伊人久久| 欧美大片免费观看在线观看网站推荐| 一本色道88久久加勒比精品| 国产日韩欧美一区二区| 激情视频一区二区三区| 性欧美18~19sex高清播放| 激情综合色丁香一区二区| 亚洲婷婷在线| 国产亚洲在线| 模特精品裸拍一区| 欧美日韩理论| 久久精品国产69国产精品亚洲| 蜜桃av综合| 午夜日韩激情| 日韩视频专区| 久久人人看视频| 国产精品一区在线播放| 欧美国产精品中文字幕| 欧美一区二区三区四区夜夜大片| 亚洲高清久久网| 欧美系列亚洲系列| 免费在线看成人av| 欧美一级电影久久| 亚洲国产日日夜夜| 韩国欧美一区| 日韩视频免费观看高清在线视频| 亚洲第一精品夜夜躁人人躁| 久久久91精品国产一区二区三区| 亚洲一区二区三区777| 久久青草欧美一区二区三区| 亚洲久色影视| 亚洲第一区中文99精品| 国产农村妇女毛片精品久久麻豆| 黄色成人在线网站| 国产精品美女久久久久av超清| 国产欧美精品| 亚洲国产精品久久久久秋霞不卡 | 欧美人妖在线观看| 一区二区视频欧美| 在线不卡亚洲| 亚洲深夜福利视频| 免费亚洲电影在线| 欧美三日本三级少妇三2023 | 亚洲福利视频三区| 国外成人在线视频| 午夜精彩国产免费不卡不顿大片| 欧美区一区二区三区| 欧美日韩亚洲一区二区| 亚洲国产精品久久久| 国产精品日日摸夜夜摸av| 国产亚洲激情在线| 久久综合国产精品台湾中文娱乐网| 欧美激情一区在线| 国产精品视频一区二区三区| 伊人成人在线视频| 国产一区二区三区久久悠悠色av| 欧美午夜精品久久久久久浪潮| 亚洲日本黄色| 欧美激情一区二区三区不卡| 麻豆亚洲精品| 一区二区在线观看视频在线观看| 欧美大片91| 又紧又大又爽精品一区二区| 久久精品亚洲一区二区| 欧美日韩国产在线播放网站| 亚洲全黄一级网站| 国产精品高精视频免费| 欧美亚洲免费电影| 狠狠色狠狠色综合系列| 久久综合网hezyo| 欧美综合国产精品久久丁香| 好看不卡的中文字幕| 国内精品视频一区| 亚洲一区二区三区欧美| 欧美精品成人一区二区在线观看| 国产精品久久久对白| 一区二区三区三区在线| 亚洲激情成人网| 亚洲国产精品va在看黑人| 亚洲国产精品成人va在线观看| 午夜精品久久久久久99热| 亚洲免费观看高清完整版在线观看熊 | 亚洲欧美国产一区二区三区| 亚洲国产精品va在线看黑人| 日韩特黄影片| 国产在线一区二区三区四区| 国产精品草草| 国产欧美综合一区二区三区| 欧美18av| 欧美激情中文字幕在线| 久久综合五月| 欧美欧美在线| 久久全球大尺度高清视频| av成人天堂| 亚洲欧美中日韩| 久久综合九色综合久99| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲天堂免费观看| 一区二区视频免费完整版观看| 国产一区二区中文| 欧美精品三级| 欧美日韩专区在线| 欧美三级在线| 国产精品成人一区二区艾草| 嫩草伊人久久精品少妇av杨幂| 欧美福利视频在线观看| 亚洲日本aⅴ片在线观看香蕉| 久久狠狠亚洲综合| 欧美在线视频日韩| 免费观看成人www动漫视频| 欧美黄色小视频| 国产视频不卡| 一级成人国产| 欧美成人午夜视频| 国产伦精品一区| 亚洲精品欧美精品| 亚洲影视在线播放| 蜜臀va亚洲va欧美va天堂 | 久久精品女人| 久久欧美中文字幕| 欧美一区二区高清| 欧美主播一区二区三区| 欧美黄色免费网站| 国内自拍一区| 麻豆91精品| 国产精品不卡在线| 日韩一区二区高清| 国产精品捆绑调教| 亚洲福利视频免费观看| 欧美一区二区视频网站| 国产酒店精品激情| 美女视频网站黄色亚洲| 一区二区三区四区国产精品| 欧美三日本三级少妇三2023| 一区在线免费观看| 亚洲免费一级电影| 国模套图日韩精品一区二区| 久久这里只有精品视频首页| 亚洲黄色免费| 国产精品人人做人人爽| 久久精彩免费视频| 亚洲国产一区在线| 国产一区深夜福利| 国产精品日韩欧美一区| 欧美 日韩 国产 一区| 小黄鸭精品aⅴ导航网站入口| 久久在线视频| 在线观看一区欧美| 国产精品国内视频| 小黄鸭精品密入口导航| 在线性视频日韩欧美| 亚洲精品欧美极品| 欧美激情1区| 亚洲男女自偷自拍| 国产一区二区福利| 黄色国产精品| 亚洲在线视频观看| 欧美精品色一区二区三区| 亚洲国产99| 欧美激情视频给我| 亚洲在线网站| 黄色精品一区| 国产精品久久久久国产a级| 亚洲欧美在线看| 亚洲视频在线观看网站| 亚洲高清不卡在线| 在线视频国产日韩| 亚洲国产成人一区| 国产一区二区看久久| 欧美激情一区二区三级高清视频| 久久精品中文| 久久婷婷av| 久久精品91久久香蕉加勒比| 久久国产欧美日韩精品| 久久国产夜色精品鲁鲁99| 亚洲欧美一区二区精品久久久| 亚洲午夜在线观看视频在线| 亚洲免费精品| 欧美一级大片在线免费观看| 欧美一区二区精品在线| 久久久久国产精品一区二区| 香蕉成人伊视频在线观看| 久久国产综合精品| 久久久精品一区| 麻豆乱码国产一区二区三区| 欧美一区二区大片| 欧美成人激情视频免费观看| 国产精品久久精品日日| 精品成人在线| 亚洲一级免费视频|