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

ORACLE觸發(fā)器語法及實(shí)例一

建站服務(wù)器 一 ORACLE觸發(fā)器語法

http://www.zw1840.com/oracle/translation/concepts/html/22.Triggers.htm

http://www.zw1840.com/oracle/index.htm

觸發(fā)器是特定事件出現(xiàn)的時候,自動執(zhí)行的代碼塊。類似于存儲過程,觸發(fā)器與存儲過程的區(qū)別在于: 存儲過程是由用戶或應(yīng)用程序顯式調(diào)用的,而觸發(fā)器是不能被直接調(diào)用的。

觸發(fā)器觸發(fā)時間有兩種:after和before。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的蒙陰網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!1、觸發(fā)器的語法:

CREATE [OR REPLACE] TIGGER 觸發(fā)器名 觸發(fā)時間 觸發(fā)事件

ON 表名

[FOR EACH ROW]

BEGIN

pl/sql 語句

END

其中:

觸發(fā)器名:觸發(fā)器對象的名稱。

由于觸發(fā)器是數(shù)據(jù)庫自動執(zhí)行的,因此該名稱只是一個名稱,沒有實(shí)質(zhì)的用途。

觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,該值可?。?/P>

before---表示在數(shù)據(jù)庫動作之前觸發(fā)器執(zhí)行;

after---表示在數(shù)據(jù)庫動作之后出發(fā)器執(zhí)行。

觸發(fā)事件:指明哪些數(shù)據(jù)庫動作會觸發(fā)此觸發(fā)器:

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

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

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

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

for each row:對表的每一行觸發(fā)器執(zhí)行一次。如果沒有這一選項(xiàng),則只對整個表執(zhí)行一次。

2、舉例:

下面的觸發(fā)器在更新表auths之前觸發(fā),目的是不允許在周末修改表:

create trigger auth_secure before insert or update or delete //對整表更新前觸發(fā)

on auths

begin

if(to_char(sysdate,\'DY\')=\'SUN\'

RAISE_APPLICATION_ERROR(-20600,\'不能在周末修改表auths\');

end if;

end

例子:

CREATE OR REPLACE TRIGGER CRM.T_SUB_USERINFO_AUR_NAME AFTER UPDATE OF STAFF_NAME

ON CRM.T_SUB_USERINFO

REFERENCING OLD AS OLD NEW AS NEW

FOR EACH ROW

declare

begin

if :NEW.STAFF_NAME!=:OLD.STAFF_NAME then

begin

--客戶投訴

update T_COMPLAINT_MANAGE set SERVE_NAME=:NEW.STAFF_NAME where SERVE_SEED=:OLD.SEED;

--客戶關(guān)懷

update T_CUSTOMER_CARE set EXECUTOR_NAME=:NEW.STAFF_NAME

where EXECUTOR_SEED=:OLD.SEED;

--客戶服務(wù)

update T_CUSTOMER_SERVICE set EXECUTOR_NAME=:NEW.STAFF_NAME

where EXECUTOR_SEED=:OLD.SEED;

end;

end if;

end T_sub_userinfo_aur_name;

/

二 Oracle觸發(fā)器詳解

1、觸發(fā)器的組成部分:

1.1、觸發(fā)器名稱

1.2、觸發(fā)語句

1.3、觸發(fā)器限制

1.4、觸發(fā)操作

2、觸發(fā)器的類型有:

2.1、語句級觸發(fā)器.(語句級觸發(fā)器對每個DML語句執(zhí)行一次)

是在表上或者某些情況下的視圖上執(zhí)行的特定語句或者語句組上的觸發(fā)器。能夠與INSERT、UPDATE、DELETE或者組合上進(jìn)行關(guān)聯(lián)。但是無論使用什么樣的組合,各個語句觸發(fā)器都只會針對指定語句激活一次。比如,無論update多少行,也只會調(diào)用一次update語句觸發(fā)器。

實(shí)例:

create or replace trigger tri_test

after insert or update or delete on test

begin

if updating then

dbms_output.put_line(\'修改\');

elsif deleting then

dbms_output.put_line(\'刪除\');

elsif inserting then

dbms_output.put_line(\'插入\');

end if;

end;

2.2、行級觸發(fā)器.(行級觸發(fā)器對DML語句影響的每個行執(zhí)行一次)

實(shí)例一:

--觸發(fā)器

--行級觸發(fā)器

create table test(sid number,sname varchar2(20));--創(chuàng)建一個表

create sequence seq_test;--創(chuàng)建序列

create or replace trigger tri_test--創(chuàng)建觸發(fā)器

before insert or update of sid on test

for each row--觸發(fā)每一行

begin

if inserting then

select seq_test.nextval into:new.sid from dual;

else

raise_application_error(-20020,\'不允許更新ID值!\');--中斷程序

end if;

end;

--測試,插入幾條記錄

insert into test values(0,\'ff\');

insert into test values(0,\'ff\');

insert into test values(0,\'tt\');

輸出結(jié)果如下圖所示:

實(shí)例二:

--創(chuàng)建一個觸發(fā)器,無論用戶插入新記錄,還是修改emp表的job列,都將用戶指定的job列的值轉(zhuǎn)換成大寫.

create or replace trigger trig_job

before insert or update of job

on emp

for each row

<SPAN lang=EN-US style=FONT-FAMILY: 宋體; mso-bidi-font-size: 10.5

本文題目:ORACLE觸發(fā)器語法及實(shí)例一
地址分享:http://www.rwnh.cn/article12/cgjdgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站全網(wǎng)營銷推廣、App設(shè)計(jì)、定制網(wǎng)站

廣告

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

铁力市| 澳门| 滦南县| 岢岚县| 嘉兴市| 韶山市| 滦平县| 兴隆县| 含山县| 怀来县| 黄冈市| 肃宁县| 瓦房店市| 鸡东县| 芒康县| 会东县| 耒阳市| 蒙阴县| 波密县| 柳河县| 义乌市| 汉川市| 丰城市| 万宁市| 武强县| 庆阳市| 祁门县| 集贤县| 含山县| 金沙县| 洪湖市| 龙泉市| 鄂州市| 滦平县| 凯里市| 南平市| 克什克腾旗| 定边县| 甘孜县| 防城港市| 彩票|