西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程數(shù)據(jù)庫教程 → Informix觸發(fā)器、創(chuàng)建insert、update和delete三個(gè)觸發(fā)器實(shí)例介紹

Informix觸發(fā)器、創(chuàng)建insert、update和delete三個(gè)觸發(fā)器實(shí)例介紹

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2012/5/16 12:01:15字體大。A-A+

作者:佚名點(diǎn)擊:130次評(píng)論:0次標(biāo)簽: 觸發(fā)器

  • 類型:系統(tǒng)工具大小:11.9M語言:中文 評(píng)分:2.7
  • 標(biāo)簽:
立即下載

實(shí)例:在一個(gè)基表上創(chuàng)建insert,update,delete這三個(gè)觸發(fā)器,將對(duì)基表的操作保存在監(jiān)控表中,達(dá)到監(jiān)控基表的操作過程  

創(chuàng)建基表table_trigger1  

create table table_trigger1 (  

id1 char(10), --id1,唯一  

name1 char(20), --姓名  

primary key(id1) -----基表必須要有關(guān)鍵子,不然通過監(jiān)控表無法獲知對(duì)哪一行數(shù)據(jù)進(jìn)行了操作  

)  

創(chuàng)建監(jiān)控表  

create table table_trigger2 (  

id2 char(10), --id2,對(duì)應(yīng)操作基表的id1,這里的id2不能設(shè)置為主鍵,因?yàn)閷?duì)基表的某一行可以操作多次  

kind varchar(1), --類型,用I來表示insert,U來表示update,D來表示delete  

time2 datetime year to fraction(5) --時(shí)間,表示操作發(fā)生的時(shí)間  

)  

創(chuàng)建3個(gè)觸發(fā)器:  

insert觸發(fā)器  

create trigger trigger_insert -- 創(chuàng)建trigger_insert 觸發(fā)器  

insert on table_trigger1 --在基表table_trigger1表創(chuàng)建insert觸發(fā)事件  

referencing NEW as new --定義new 在后面要使用  

for each row --使用referencing語句的前提條件,必須加上  

(  

insert into table_trigger2 (id2,kind,time2) //向監(jiān)控表table_trigger2插入數(shù)據(jù)  

values (new.id1,'I',current) //current表示觸發(fā)時(shí)的時(shí)間  

);  

update觸發(fā)器  

create trigger trigger_update  

update on table_trigger1  

referencing Old as old  

for each row  

(  

insert into table_trigger2 (id2,kind,time2)  

values (old.id1,'U',current)  

);  

delete觸發(fā)器  

create trigger trigger_delete  

delete on table_trigger1  

referencing Old as old  

for each row  

(  

insert into table_trigger2 (id2,kind,time2)  

values (old.id1,'D',current)  

);  

測(cè)試:  

執(zhí)行下面4句sql語句  

insert into table_trigger1 values ('1','name1');  

insert into table_trigger1 values ('2','name');  

update table_trigger1 set name1='newName1' where id1='1';  

delete table_trigger1 where id1='2';  

在監(jiān)控表table_trigger2中的數(shù)據(jù):  

id2   kind   time2  

1     I      發(fā)生時(shí)刻  

2     I      發(fā)生時(shí)刻  

1     U      發(fā)生時(shí)刻  

2     D      發(fā)生時(shí)刻  

通過監(jiān)控表就可以詳細(xì)的知道table_trigger1表的數(shù)據(jù)變化情況了

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)