内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

怎么利用數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的同步

本篇內(nèi)容主要講解“怎么利用數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的同步”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么利用數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的同步”吧!

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比建始網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式建始網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋建始地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。

一、什么是觸發(fā)器

數(shù)據(jù)庫(kù)觸發(fā)器是一個(gè)與表相關(guān)聯(lián)的,存儲(chǔ)的PL/SQL 語(yǔ)句。每當(dāng)一個(gè)特定的數(shù)據(jù)操作語(yǔ)句(insert update delete)在指定的表上發(fā)出時(shí),Oracle自動(dòng)執(zhí)行觸發(fā)器中定義的語(yǔ)句序列。

觸發(fā)器的應(yīng)用場(chǎng)景如下:

  • 復(fù)雜的安全性檢查

  • 數(shù)據(jù)的確認(rèn)

  • 數(shù)據(jù)庫(kù)審計(jì)

  • 數(shù)據(jù)的備份和審計(jì)

二、創(chuàng)建Oracle觸發(fā)器的語(yǔ)法

1
2
3
4
5
6
7
8
9
CREATE [OR REPLACE] TRIGGER trigger_name                                    
{BEFORE | AFTER }                                    
{INSERT | DELETE | UPDATE [OF column [, column …]]}                                    
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]                                    
ON [schema.]table_name | [schema.]view_name                                    
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]                                    
[FOR EACH ROW ]                                    
[WHEN condition]                                    
PL/SQL_BLOCK | CALL procedure_name;                                    

其中:

  • BEFORE 和AFTER指出觸發(fā)器的觸發(fā)時(shí)序分別為前觸發(fā)和后觸發(fā)方式,前觸發(fā)是在執(zhí)行觸發(fā)事件之前觸發(fā)當(dāng)前所創(chuàng)建的觸發(fā)器,后觸發(fā)是在執(zhí)行觸發(fā)事件之后觸發(fā)當(dāng)前所創(chuàng)建的觸發(fā)器。

  • FOR EACH ROW選項(xiàng)說(shuō)明觸發(fā)器為行觸發(fā)器。

  • 行觸發(fā)器和語(yǔ)句觸發(fā)器的區(qū)別表現(xiàn)在:行觸發(fā)器要求當(dāng)一個(gè)DML語(yǔ)句操走影響數(shù)據(jù)庫(kù)中的多行數(shù)據(jù)時(shí),對(duì)于其中的每個(gè)數(shù)據(jù)行,只要它們符合觸發(fā)約束條件,均激活一次觸發(fā)器;而語(yǔ)句觸發(fā)器將整個(gè)語(yǔ)句操作作為觸發(fā)事件,當(dāng)它符合約束條件時(shí),激活一次觸發(fā)器。

  • 當(dāng)省略FOR EACH ROW 選項(xiàng)時(shí),BEFORE 和AFTER 觸發(fā)器為語(yǔ)句觸發(fā)器,而INSTEAD OF 觸發(fā)器則只能為行觸發(fā)器

  • REFERENCING 子句說(shuō)明相關(guān)名稱,在行觸發(fā)器的PL/SQL塊和WHEN 子句中可以使用相關(guān)名稱參照當(dāng)前的新、舊列值,默認(rèn)的相關(guān)名稱分別為OLD和NEW。觸發(fā)器的PL/SQL塊中應(yīng)用相關(guān)名稱時(shí),必須在它們之前加冒號(hào)(:),但在WHEN子句中則不能加冒號(hào)。

  • WHEN 子句說(shuō)明觸發(fā)約束條件。Condition 為一個(gè)邏輯表達(dá)時(shí),其中必須包含相關(guān)名稱,而不能包含查詢語(yǔ)句,也不能調(diào)用PL/SQL 函數(shù)。WHEN 子句指定的觸發(fā)約束條件只能用在BEFORE 和AFTER 行觸發(fā)器中,不能用在INSTEAD OF 行觸發(fā)器和其它類型的觸發(fā)器中。

  • 當(dāng)一個(gè)基表被修改( INSERT, UPDATE, DELETE)時(shí)要執(zhí)行的存儲(chǔ)過(guò)程,執(zhí)行時(shí)根據(jù)其所依附的基表改動(dòng)而自動(dòng)觸發(fā),因此與應(yīng)用程序無(wú)關(guān),用數(shù)據(jù)庫(kù)觸發(fā)器可以保證數(shù)據(jù)的一致性和完整性。

三、Oracle觸發(fā)器的類型

  • 行級(jí)觸發(fā)器:對(duì)DML語(yǔ)句影響的每個(gè)行執(zhí)行一次,例如,一條update語(yǔ)句更新了100條數(shù)據(jù),如果我們針對(duì)update定義了行級(jí)觸發(fā)器,那么行級(jí)觸發(fā)器將會(huì)被觸發(fā)100次 。

  • 語(yǔ)句級(jí)觸發(fā)器:對(duì)每個(gè)DML語(yǔ)句執(zhí)行一次,例如,一條update語(yǔ)句更新了200條數(shù)據(jù),如果我們針對(duì)update定義了語(yǔ)句級(jí)觸發(fā)器,那么語(yǔ)句級(jí)觸發(fā)器將會(huì)被觸發(fā)1次 。

四、利用數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的同步

1
2
3
4
5
6
7
8
9
create or replace trigger sync_salary                                    
after update                                    
on emp                                    
for each row                                    
begin                                    
  --當(dāng)主表更新后,自動(dòng)更新備份表。                                    
  update emp_back set sal=:new.sal where empno=:new.empno;                                    
end;                                    
/                                    
  • 在上面的例子中,當(dāng)我們更新了主表emp的薪水后,這個(gè)行級(jí)觸發(fā)器將會(huì)被自動(dòng)執(zhí)行更新備份表中的員工的薪水。

到此,相信大家對(duì)“怎么利用數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的同步”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

名稱欄目:怎么利用數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的同步
標(biāo)題鏈接:http://www.rwnh.cn/article16/ggdodg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化服務(wù)器托管、用戶體驗(yàn)云服務(wù)器、小程序開(kāi)發(fā)、虛擬主機(jī)

廣告

聲明:本網(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è)網(wǎng)站維護(hù)公司
雷山县| 太和县| 灵石县| 邵东县| 武功县| 定南县| 新郑市| 丹巴县| 阜南县| 黄山市| 翁牛特旗| 吴堡县| 滨州市| 运城市| 都匀市| 江源县| 陵水| 惠东县| 鹿泉市| 松潘县| 阳泉市| 铜山县| 清涧县| 和龙市| 荥经县| 五原县| 巨鹿县| 安义县| 仲巴县| 泰安市| 嫩江县| 绥江县| 桂平市| 宜都市| 广平县| 布拖县| 邹城市| 若尔盖县| 龙山县| 武汉市| 孟连|