Informix觸發器執行個體

來源:互聯網
上載者:User
    1. 執行個體:在一個基表上建立insert,update,delete這三個觸發器,將對基表的操作儲存在監控表中,達到監控基表的操作過程  
    2.   
    3. 建立基表table_trigger1  
    4. create table table_trigger1 (  
    5. id1 char(10), --id1,唯一  
    6. name1 char(20), --姓名  
    7. primary key(id1) -----基表必須要有關鍵子,不然通過監控表無法獲知對哪一行資料進行了操作  
    8. )  
    9. 建立監控表  
    10. create table table_trigger2 (  
    11. id2 char(10), --id2,對應操作基表的id1,這裡的id2不能設定為主鍵,因為對基表的某一行可以操作多次  
    12. kind varchar(1), --類型,用I來表示insert,U來表示update,D來表示delete  
    13. time2 datetime year to fraction(5) --時間,表示操作發生的時間  
    14. )  
    15.   
    16. 建立3個觸發器:  
    17. insert觸發器  
    18. create trigger trigger_insert -- 建立trigger_insert 觸發器  
    19. insert on table_trigger1 --在基表table_trigger1表建立insert觸發事件  
    20. referencing NEW as new --定義new 在後面要使用  
    21. for each row --使用referencing語句的前提條件,必須加上  
    22. (  
    23. insert into table_trigger2 (id2,kind,time2) //向監控表table_trigger2插入資料  
    24. values (new.id1,'I',current) //current表示觸發時的時間  
    25. );  
    26.   
    27. update觸發器  
    28. create trigger trigger_update  
    29. update on table_trigger1  
    30. referencing Old as old  
    31. for each row  
    32. (  
    33. insert into table_trigger2 (id2,kind,time2)  
    34. values (old.id1,'U',current)  
    35. );  
    36.   
    37. delete觸發器  
    38. create trigger trigger_delete  
    39. delete on table_trigger1  
    40. referencing Old as old  
    41. for each row  
    42. (  
    43. insert into table_trigger2 (id2,kind,time2)  
    44. values (old.id1,'D',current)  
    45. );  
    46.   
    47. 測試:  
    48. 執行下面4句sql語句  
    49. insert into table_trigger1 values ('1','name1');  
    50. insert into table_trigger1 values ('2','name');  
    51. update table_trigger1 set name1='newName1' where id1='1';  
    52. delete table_trigger1 where id1='2';  
    53.   
    54. 在監控表table_trigger2中的資料:  
    55. id2   kind   time2  
    56. 1     I      發生時刻  
    57. 2     I      發生時刻  
    58. 1     U      發生時刻  
    59. 2     D      發生時刻  
    60.   
    61. 通過監控表就可以詳細的知道table_trigger1表的資料變化情況了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.