就是增加个字段然后对5个表建触发器,对更新、删除操作做记录,写进log表这很清楚啊,你什么不清楚?

解决方案 »

  1.   

    记录创建时间的触发器:
    create or replace trigger tab1_trigger
      before insert on   tabname1
    for each row
    begin
      :New.Create_Time := sysdate;
    end aaa;当然之前还得增加一个Create_Time字段:
    alter table tabname1
      add Create_time date;
      

  2.   

    上面搞错一点东东:
    create or replace trigger tab1_trigger
      before insert on   tabname1
    for each row
    begin
      :New.Create_Time := sysdate;
    end tab1_trigger;
      

  3.   

    更新、删除记录入t_sort_para_log的,使用After Update or Delete 触发器就可以了,简单写了个如下:
    create or replace trigger tab1_trigger2
      After Update or Delete  on   tabname1
    for each row
    begin
      Case 
      when Updating then
        Insert into t_sort_para_log (create_time,event) values(sysdate,'Update tab1 a row')
      when deleting then    
        Insert into t_sort_para_log (create_time,event) values(sysdate,'Delete tab1 a row')
      end case;
    end tab1_trigger2;
      

  4.   

    非常感谢 hevin(没有什么是不可能的) 
    请问:new 和:old是什么意思啊?我看了他们的定义但还是不知道什么意思?
    还有上面的sysdate是自己声明的参数吗?请接分!
      

  5.   

    new 就是新的要插入表中的数据,old就是原来表里的数据,sysdate是oracle取当前系统时间函数
      

  6.   

    update操作你可以简单认为是先从表中删除old数据,再将new数据插入到表中,insert就只是将new数据插入到表中。
      

  7.   

    hevin(没有什么是不可能的) 可否再赐教?
    Case 
      when Updating then
        Insert into t_sort_para_log (create_time,event) values(sysdate,'Update tab1 a row')
      when deleting then    
        Insert into t_sort_para_log (create_time,event) values(sysdate,'Delete tab1 a row')
      end case;case
      when -------
      when -------
    end case 这一段是不是伪码啊 怎么编译错误啊 ?当我想操作是update时执行 Insert into t_sort_para_log (create_time,event) values(sysdate,'Update tab1 a row')
    操作是delete 时执行Insert into t_sort_para_log (create_time,event) values(sysdate,'Delete tab1 a row')
    该用什么语句啊? 
      

  8.   

    不是。
    报的什么错?我的只是举个例子 t_sort_para_log 表中具体有什么字段我又不清楚,我只是假设它有两个字段create_time,event,具体你当然要根据你自己的实际情况做一定的调整。
      

  9.   

    我也用的是create_time,event 这两个字段
     当我想操作是update时执行 Insert into t_sort_para_log (create_time,event) values(sysdate,'Update tab1 a row')
    操作是delete 时执行Insert into t_sort_para_log (create_time,event) values(sysdate,'Delete tab1 a row')
    该用什么语句啊?