關(guān)系數(shù)據(jù)庫(kù)SQL之可編程性觸發(fā)器

前言

前面關(guān)系數(shù)據(jù)庫(kù)SQL之可編程性函數(shù)(用戶(hù)自定義函數(shù))一文提到關(guān)系型數(shù)據(jù)庫(kù)提供了可編程性的函數(shù)鹏溯、存儲(chǔ)過(guò)程、事務(wù)淹仑、觸發(fā)器及游標(biāo)丙挽,前文已介紹了函數(shù)、存儲(chǔ)過(guò)程匀借、事務(wù)取试,本文來(lái)介紹一下觸發(fā)器的使用。(還是以前面的銀行系統(tǒng)為例)

圖片來(lái)自網(wǎng)絡(luò)

概述

觸發(fā)器(TRIGGER)是個(gè)特殊的存儲(chǔ)過(guò)程怀吻,它的執(zhí)行不是由程序調(diào)用瞬浓,也不是手工啟動(dòng),而是由事件來(lái)觸發(fā)蓬坡,比如當(dāng)對(duì)一個(gè)表進(jìn)行操作( INSERT猿棉,DELETE磅叛, UPDATE)時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強(qiáng)數(shù)據(jù)的完整性約束和業(yè)務(wù)規(guī)則等萨赁。 觸發(fā)器可以從 DBA_TRIGGERS 弊琴,USER_TRIGGERS 數(shù)據(jù)字典中查到。

觸發(fā)器分為兩種:AFTER觸發(fā)器和INSTEAD OF觸發(fā)器杖爽。

語(yǔ)法

  • 創(chuàng)建觸發(fā)器
CREATE TRIGGER <觸發(fā)器名稱(chēng)> 
   ON  <表名|視圖名> 
   [AFTER | INSTEAD OF] <INSERT,DELETE,UPDATE>
AS 
--SQL語(yǔ)句塊
  • 修改觸發(fā)器
ALERT TRIGGER <觸發(fā)器名稱(chēng)> 
   ON  <表名|視圖名> 
   [AFTER | INSTEAD OF] <INSERT,DELETE,UPDATE>
AS 
--SQL語(yǔ)句塊
  • 刪除觸發(fā)器
DROP TRIGGER <觸發(fā)器名稱(chēng)>

說(shuō)明:

  1. AFTER觸發(fā)器主要用于在數(shù)據(jù)表執(zhí)行INSERT敲董,DELETE, UPDATE操作之后慰安,同時(shí)操作其他表腋寨。
  2. INSTEAD OF觸發(fā)器會(huì)替代所要執(zhí)行的SQL語(yǔ)句,也就是說(shuō)所要執(zhí)行SQL并不會(huì)真正執(zhí)行化焕,真正執(zhí)行的是觸發(fā)器中定義的操作萄窜。
  3. AFTER觸發(fā)器只針對(duì)表操作,INSTEAD OF觸發(fā)器除了操作表還可以作用于視圖撒桨,擴(kuò)展視圖可以支持的更新操作查刻。
  4. AFTER觸發(fā)器是在執(zhí)行SQL之后觸發(fā),而INSTEAD OF觸發(fā)器是在執(zhí)行SQL之前觸發(fā)凤类。
  5. 一個(gè)表的INSERT穗泵,DELETE, UPDATE操作可以有多個(gè)AFTER觸發(fā)器谜疤,有至多一個(gè)INSTEAD OF觸發(fā)器佃延。

特殊表

觸發(fā)器有兩個(gè)特殊的表:插入表(instered表)和刪除表(deleted表)

示例

1.AFTER觸發(fā)器示例
在取錢(qián)時(shí),交易信息表里面插入交易信息茎截,同時(shí)要更改賬戶(hù)表里面的余額

--創(chuàng)建觸發(fā)器
CREATE TRIGGER Trigger_getMoney 
   ON  TransInfo 
   AFTER INSERT
AS 
declare @cardId varchar(19)
declare @tranMoney money
select @cardId  = CardID , @tranMoney = TransMoney from instered;
update CardInfo set LeftMoney = LeftMoney - @tranMoney where CardID = @cardId
GO

--執(zhí)行插入操作
insert into TransInfo values('1324 3626 7532 1935','取款',500,default);

2.INSTEAD OF觸發(fā)器
指定的賬戶(hù)"422322001550135015"不可以刪除

--創(chuàng)建觸發(fā)器
CREATE TRIGGER Trigger_deleteAccount 
   ON  AccountInfo 
   INSTEAD OF DELETE
AS 
delete from AccountInfo where CardID != '422322001550135015' AND CardID=(select CardID from deleted)
--執(zhí)行刪除操作

本文就介紹到這里苇侵。
如有疑問(wèn)請(qǐng)聯(lián)系我赶盔。

本文采用知識(shí)共享署名-相同方式共享 4.0 國(guó)際許可協(xié)議進(jìn)行許可企锌。
基于簡(jiǎn)書(shū)上的作品創(chuàng)作。 可轉(zhuǎn)載于未、引用撕攒,但需經(jīng)本人同意后署名作者且注明文章出處,并以相同方式共享烘浦。

知識(shí)共享許可協(xié)議
知識(shí)共享許可協(xié)議

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抖坪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闷叉,更是在濱河造成了極大的恐慌擦俐,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件握侧,死亡現(xiàn)場(chǎng)離奇詭異蚯瞧,居然都是意外死亡嘿期,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)埋合,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)备徐,“玉大人,你說(shuō)我怎么就攤上這事甚颂∶刍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵振诬,是天一觀的道長(zhǎng)蹭睡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)贷揽,這世上最難降的妖魔是什么棠笑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮禽绪,結(jié)果婚禮上蓖救,老公的妹妹穿的比我還像新娘。我一直安慰自己印屁,他們只是感情好循捺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雄人,像睡著了一般从橘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上础钠,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天恰力,我揣著相機(jī)與錄音,去河邊找鬼旗吁。 笑死踩萎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的很钓。 我是一名探鬼主播香府,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼码倦!你這毒婦竟也來(lái)了企孩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤袁稽,失蹤者是張志新(化名)和其女友劉穎勿璃,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡补疑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年闻葵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癣丧。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡槽畔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胁编,到底是詐尸還是另有隱情厢钧,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布嬉橙,位于F島的核電站风科,受9級(jí)特大地震影響遂唧,放射性物質(zhì)發(fā)生泄漏妄壶。R本人自食惡果不足惜佑笋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枫振。 院中可真熱鬧喻圃,春花似錦、人聲如沸粪滤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杖小。三九已至肆汹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間予权,已是汗流浹背昂勉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扫腺,地道東北人岗照。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像斧账,于是被迫代替她去往敵國(guó)和親谴返。 傳聞我的和親對(duì)象是個(gè)殘疾皇子煞肾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容