zoukankan      html  css  js  c++  java
  • Informix触发器实例

      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表的数据变化情况了
  • 相关阅读:
    【转】JAVA内存泄露分析和解决方案及WINDOWS自带查看工具
    windows 下面获得pid
    几个工具的收藏
    转-springboot2新版升级springcloud微服务实战Consul+sleuth+zipkin+Feign/Ribbon+Config+Zuul+Hystrix+Turbine
    【转】windows+gitlab配置ssh key
    telnet端口不通
    layui后台框架的搭建
    用ffmpeg+nginx+海康威视网络摄像头rtsp在手机端和电脑端实现直播
    从零开始搭建基于CEFGlue的CB/S的winform项目
    WinForm使用CefSharp内嵌chrome浏览器
  • 原文地址:https://www.cnblogs.com/dengdalin/p/2503709.html
Copyright © 2011-2022 走看看