oracle觸發(fā)器是什么-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)oracle觸發(fā)器是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)公司2013年至今,先為墨竹工卡等服務(wù)建站,墨竹工卡等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為墨竹工卡企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

Oracle觸發(fā)器是什么呢?
首先我們來(lái)了解一下觸發(fā)器是什么,觸發(fā)器在觸發(fā)一定事件的時(shí)候隱式執(zhí)行的一段sql語(yǔ)句,觸發(fā)器不能接收參數(shù)。Oracle觸發(fā)器則是觸發(fā)Oracle數(shù)據(jù)庫(kù)中對(duì)數(shù)據(jù)庫(kù)進(jìn)行insert、update、delete操作或?qū)σ晥D進(jìn)行類似的操作,還有一些系統(tǒng)的事件,比如數(shù)據(jù)庫(kù)的關(guān)閉或開(kāi)啟。
觸發(fā)器的分類有哪些?
(1)、數(shù)據(jù)操縱語(yǔ)言(DML)觸發(fā)器:創(chuàng)建在表上,有DML時(shí)間來(lái)觸發(fā)的觸發(fā)器;
(2)、替代(insteadof)觸發(fā)器:創(chuàng)建在視圖上,用來(lái)替換對(duì)視圖進(jìn)行添加、修改和刪除操作。
(3)、數(shù)據(jù)定義語(yǔ)言(DDL)觸發(fā)器:定義在模式上,觸發(fā)事件是對(duì)數(shù)據(jù)庫(kù)對(duì)象的創(chuàng)建和修改操作。
(4)、數(shù)據(jù)庫(kù)系統(tǒng)觸發(fā)器:定義在整個(gè)數(shù)據(jù)庫(kù)上,觸發(fā)的時(shí)間是數(shù)據(jù)庫(kù)的操作,比如數(shù)據(jù)庫(kù)的啟動(dòng)和關(guān)閉。
觸發(fā)器的組成部分有哪些?
(1)、觸發(fā)的事件:即在何種情況下觸發(fā)trigger,例如:insert、update、delete。
(2)、觸發(fā)的時(shí)間:即該trigger是在觸發(fā)事件之前(before)還是在觸發(fā)事件之后(after),也是觸發(fā)的事件和該trigger主體的先后順序。
(3)、觸發(fā)器本身:即觸發(fā)器在觸發(fā)事件的時(shí)候要執(zhí)行的操作,例如:pl/sql塊。
(4)、觸發(fā)的頻率:說(shuō)明該觸發(fā)器內(nèi)定義的動(dòng)作被執(zhí)行的次數(shù)。即語(yǔ)句級(jí)觸發(fā)器和行級(jí)觸發(fā)器。語(yǔ)句級(jí)觸發(fā)器是指當(dāng)某個(gè)事件發(fā)生時(shí),該觸發(fā)器只執(zhí)行一次。而行級(jí)觸發(fā)器,在某個(gè)事件發(fā)生時(shí),對(duì)受到該操作影響的每一行數(shù)據(jù),都會(huì)單獨(dú)執(zhí)行一次觸發(fā)器。
Oracle觸發(fā)器實(shí)例
--創(chuàng)建表
--員工表
CREATETABLEemp(
emp_IDNUMBER(10)PRIMARYKEY,
emp_nameVARCHAR2(20)NOTNULL,
emp_sexVARCHAR2(10),
emp_addressVARCHAR2(15)
);
--日志表
CREATETABLElogs(
LOG_IDNUMBER(10)PRIMARYKEY,
LOG_TABLEVARCHAR2(10)NOTNULL,
LOG_DMLVARCHAR2(10),
LOG_KEY_IDNUMBER(10),
LOG_DATEDATE,
LOG_USERVARCHAR2(15)
);
--創(chuàng)建序列
CREATESEQUENCElogs_id_squINCREMENTBY1
STARTWITH1MAXVALUE9999999NOCYCLENOCACHE;
CREATESEQUENCEemp_id_squINCREMENTBY1
STARTWITH1MAXVALUE9999999NOCYCLENOCACHE;
觸發(fā)器的限制有哪些
(1)、createtrigger語(yǔ)句的字符長(zhǎng)度不能超多32kb;
(2)、觸發(fā)器體內(nèi)的select語(yǔ)句只能為select.....into.....結(jié)構(gòu),或者為定義游標(biāo)所使用的select語(yǔ)句;
(3)、觸發(fā)器中不能使用數(shù)據(jù)庫(kù)事務(wù)控制語(yǔ)句,如:commit、rollback、savepoint語(yǔ)句;
(4)、由觸發(fā)器調(diào)用的過(guò)程或函數(shù)也不能使用數(shù)據(jù)庫(kù)事務(wù)控制語(yǔ)句;
(5)、觸發(fā)器中不能使用lang、langrow類型;
(6)、觸發(fā)器可以參照l(shuí)ob類型類的列值,但不能通過(guò):new來(lái)修改lob列中的值;
(7)、觸發(fā)器所涉及的表收到表約束的限制

以上就是oracle觸發(fā)器是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前名稱:oracle觸發(fā)器是什么-創(chuàng)新互聯(lián)
文章路徑:http://bm7419.com/article42/cdephc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站網(wǎng)站維護(hù)、搜索引擎優(yōu)化、Google、面包屑導(dǎo)航服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司