国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Oracle數(shù)據(jù)庫(kù)中有關(guān)觸發(fā)器問(wèn)題

數(shù)據(jù)庫(kù) Oracle
oracle數(shù)據(jù)庫(kù)是一種大型數(shù)據(jù)庫(kù)系統(tǒng),一般應(yīng)用于商業(yè),政府部門,它的功能很強(qiáng)大,能夠處理大批量的數(shù)據(jù),在網(wǎng)絡(luò)方面也用的非常多。觸發(fā)器(trigger)是個(gè)特殊的存儲(chǔ)過(guò)程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由事件來(lái)觸發(fā),oracle數(shù)據(jù)庫(kù)中觸發(fā)器又有那些問(wèn)題吶?

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

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

觸發(fā)器功能

  1、 允許/限制對(duì)表的修改

  2、 自動(dòng)生成派生列,比如自增字段

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

  4、 提供審計(jì)和日志記錄

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

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

觸發(fā)器種類

  觸發(fā)器的種類可劃分為4種:

  1. 數(shù)據(jù)操縱語(yǔ)言(DML)觸發(fā)器
  2. 替代(INSTEAD OF)觸發(fā)器
  3. 數(shù)據(jù)定義語(yǔ)言(DDL)觸發(fā)器
  4. 數(shù)據(jù)庫(kù)事件觸發(fā)器

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

#p#

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

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

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

  ON 表名

  WHEN 觸發(fā)條件

  [FOR EACH ROW]

  DECLARE

  聲明部分

  BEGIN

  主體部分

  END;

Oracle數(shù)據(jù)庫(kù)中有關(guān)觸發(fā)器問(wèn)題(2)

  其中:

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

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

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

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

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

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

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

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

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

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

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

DROP TIRGGER 觸發(fā)器名

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

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

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

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

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

#p#

觸發(fā)器的作用

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

  (1) 強(qiáng)化約束(Enforce restriction)

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

  (2) 跟蹤變化Auditing changes

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

  (3) 級(jí)聯(lián)運(yùn)行(Cascaded operation)。

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

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

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

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

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

  當(dāng)運(yùn)行觸發(fā)器時(shí),系統(tǒng)處理的大部分時(shí)間花費(fèi)在參照其它表的這一處理上,因?yàn)檫@些表既不在內(nèi)存中也不在數(shù)據(jù)庫(kù)設(shè)備上,而刪除表和插入表總是位于內(nèi)存中。可見(jiàn)觸發(fā)器所參照的其它表的位置決定了操作要花費(fèi)的時(shí)間長(zhǎng)短。觸發(fā)器的功能強(qiáng)大,輕松可靠地實(shí)現(xiàn)許多復(fù)雜的功能,盡管如此,觸發(fā)器還是要慎用的,觸發(fā)器本身沒(méi)有過(guò)錯(cuò),但由于我們的濫用會(huì)造成數(shù)據(jù)庫(kù)及應(yīng)用程序的維護(hù)困難。在數(shù)據(jù)庫(kù)操作中,我們可以通過(guò)關(guān)系、觸發(fā)器、存儲(chǔ)過(guò)程、應(yīng)用程序等來(lái)實(shí)現(xiàn)數(shù)據(jù)操作…… 同時(shí)規(guī)則、約束、缺省值也是保證數(shù)據(jù)完整性的重要保障。如果我們對(duì)觸發(fā)器過(guò)分的依賴,勢(shì)必影響數(shù)據(jù)庫(kù)的結(jié)構(gòu),同時(shí)增加了維護(hù)的復(fù)雜程序。

【編輯推薦】

  1. Oracle數(shù)據(jù)庫(kù)性能優(yōu)化策略的選擇
  2. Oracle數(shù)據(jù)庫(kù)啟動(dòng)和關(guān)閉方式總結(jié)
  3. 帶您了解Oracle數(shù)據(jù)庫(kù)的段
  4. 帶您深入了解Oracle觸發(fā)器
  5. SQL Server約束和觸發(fā)器的區(qū)別
責(zé)任編輯:迎迎 來(lái)源: 天極網(wǎng)
相關(guān)推薦

2011-05-20 14:06:25

Oracle觸發(fā)器

2011-08-04 11:00:35

Oracle數(shù)據(jù)庫(kù)虛擬列復(fù)合觸發(fā)器

2011-05-19 14:29:49

Oracle觸發(fā)器語(yǔ)法

2009-11-18 13:15:06

Oracle觸發(fā)器

2011-04-14 13:54:22

Oracle觸發(fā)器

2019-10-22 07:50:45

SqlServer數(shù)據(jù)庫(kù)觸發(fā)器

2010-04-15 15:32:59

Oracle操作日志

2010-04-23 12:50:46

Oracle觸發(fā)器

2010-06-30 09:36:25

SQL Server

2011-04-01 16:35:09

SQL Server數(shù)觸發(fā)器

2011-08-10 16:46:01

DB2數(shù)據(jù)庫(kù)觸發(fā)器

2011-05-20 14:39:28

2010-04-09 09:07:43

Oracle游標(biāo)觸發(fā)器

2010-09-13 16:46:10

SQL Server觸

2019-04-30 15:28:46

數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程觸發(fā)器

2010-10-25 14:09:01

Oracle觸發(fā)器

2023-09-13 08:36:59

Oracle數(shù)據(jù)庫(kù)

2011-04-02 15:05:23

觸發(fā)器數(shù)據(jù)庫(kù)

2010-07-23 15:26:29

SQL Server

2024-01-19 09:37:19

MySQL數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

午夜大尺度福利视频| 人人爽人人av| 欧美久久一区二区三区| 欧美精品一区二区三| 国产在线一二三| 亚洲综合视频网| 欧美日韩激情视频在线观看| 激情图区综合网| 亚洲7777| 爽爽淫人综合网网站| 国产精品视频入口| 综合日韩在线| 5g国产欧美日韩视频| 色999日韩| 91久久精品日日躁夜夜躁国产| 伊人久久大香线蕉综合网站| 欧美中文在线字幕| 夜色77av精品影院| 2019一级黄色毛片免费看网| 国产区精品区| 欧美一区二区三区视频在线| 那种视频在线观看| 久久97视频| yw.尤物在线精品视频| 久久99热99| 国产精品7m视频| 成年人网站大全| 久久久久国产精品麻豆ai换脸 | 成人avav影音| 国产v亚洲v天堂无码| 国产精品福利在线播放| 欧美日韩亚洲综合一区 | 欧美男同性恋视频网站| 国产精品99999| 欧美日韩一区二区三区视频| 麻豆网站在线观看| 日韩欧美亚洲国产另类| 韩日成人影院| 欧美大片免费观看| 色综合综合网| 国产精品久久国产三级国电话系列| 亚洲激情女人| 日本人妖一区二区| 国产精品xxx在线观看www| 亚洲国产片色| 亚洲精品不卡| 成人免费视频app| 蜜桃免费在线视频| 欧美日韩国产在线看| 激情影院在线观看| 国产亚洲精品美女久久久久| 日本午夜精品久久久| 亚洲一区二区三区久久 | 成人性爱视频在线观看| 亚洲韩国日本中文字幕| 亚洲午夜免费| 91精品天堂| 999视频精品| 在线观看a级片| 色妞久久福利网| 日本在线一区二区| 国产无套粉嫩白浆在线2022年| 91 com成人网| 韩日一区二区| 国产精品亚洲欧美导航| 午夜一区在线| 日韩视频免费在线播放| 日韩欧美在线观看| 久久久人成影片一区二区三区在哪下载| 国产一区999| 四虎4hu新地址入口2023| 精品视频999| 欧美极品在线| 99re视频在线观看| 成人福利视频网站| 一区二区三区不卡在线视频| 日韩成人xxxx| 视频在线不卡免费观看| 熟妇熟女乱妇乱女网站| 亚洲日本在线a| 亚洲十八**毛片| 国产精品久久一区主播| 国产主播一区二区三区| 一二三在线视频社区| 亚洲性视频网站| 一区二区三区在线观看免费| 黄色网页免费在线观看| 欧美在线免费观看亚洲| 国产主播性色av福利精品一区| 美国av一区二区三区| 一区二区三区丝袜| 欧美成人三级| 秋霞在线观看一区二区三区| 欧美日韩国产中文字幕| 久久夜色精品国产噜噜av小说| 亚洲欧美国产不卡| 日韩欧美亚洲综合| 久久av国产紧身裤| 日韩精品在线观看av| 欧美一区二区视频网站| 天天做天天爱天天爽综合网| 五月婷婷狠狠操| 亚洲欧美另类人妖| 国产精品入口| 国产在线黄色| 国产成人黄色av| 久久久亚洲国产美女国产盗摄 | 国产午夜亚洲精品午夜鲁丝片| 国产在线观看a视频| 国产精品视频久久久久| 久久精品水蜜桃av综合天堂| 成人性生交大片免费观看网站| 国产伦精品一区二区三区四区视频 | 4p变态网欧美系列| 成人深夜视频在线观看| 波多野结衣中文字幕久久| 国产精品v欧美精品v日韩精品| 亚洲丝袜另类动漫二区| 综合视频一区| 男女午夜激情视频| 日韩中文字幕在线看| 国产精品996| 日韩成人三级视频| 欧美日韩国产综合一区二区| 小处雏高清一区二区三区| 啦啦啦在线视频免费观看高清中文| 久久综合88中文色鬼| 972aa.com艺术欧美| 播放一区二区| 波多野结衣三级在线| 日韩成人中文字幕| 九色porny丨国产精品| 性欧美18~19sex高清播放| 一区二区三区电影| 亚洲精品电影网| 国产一区不卡视频| 三级在线看中文字幕完整版| 在线观看一区二区三区三州| 日韩欧美国产综合一区 | 亚洲欧美成人影院| 欧美精品一区男女天堂| 亚洲日本视频| wwwav在线| 亚洲免费久久| 国产一区二区久久精品| 99在线精品免费| 2023国产精华国产精品| 在线免费视频一区| 国产v综合v亚洲欧美久久| 五月天激情综合| 天天综合网网欲色| 在线观看免费网站黄| 日本一区视频在线| 一本色道久久88亚洲综合88| 国产午夜精品久久| 女厕嘘嘘一区二区在线播放| 亚洲成人影院少妇| 国产精品福利一区二区| 亚洲精品一卡二卡| 欧美激情不卡| 国产一区深夜福利| 欧美手机在线视频| 久久99精品久久久久久国产越南 | 久久99亚洲网美利坚合众国| 一区二区国产日产| 久久久99免费视频| 一个色综合av| 久久精品国产清高在天天线| 亚洲爱爱视频| 免费av高清| 韩日午夜在线资源一区二区| 亚洲欧洲av一区二区| 国产精品久久久久毛片软件| 99久久99热这里只有精品| 羞羞的视频在线看| 午夜激情在线观看视频| 不卡一区二区三区四区五区| 亚洲美女中文字幕| 亚洲老司机在线| 天堂成人国产精品一区| 免费欧美网站| 国产福利在线视频| av在线播放天堂| 国产精品色视频| 亚洲欧美日韩高清| 亚洲五码中文字幕| 麻豆国产精品777777在线| 久久九九热re6这里有精品 | 精品免费在线视频| 国产成人精品影视| 亚洲成人av| 日本一道高清亚洲日美韩| 亚洲欧洲闷骚av少妇影院| 手机看片日韩国产| 国产精品天天狠天天看| 亚洲区免费影片| 欧美视频一区二区三区四区| 99精品国产视频| 亚洲一区二区免费看| 亚洲综合小说图片|