变动的数据可能在多个表中,例如有些数据被删除,有些update,有些insert,一般都是把这些数据的ID等放到一个临时表里么?有没有其他方式把这些数据取出来?

解决方案 »

  1.   

    可以创建一张表,表列
    id  
    tablename    //你操作过的表
    operate      //你进行的操作 insert update delete
    updatetime      //操作的时间
    updateid    //操作的这个表中的数据的PK然后在操作表的时候,就一同更新该表的记录
    但是好象不科学好象oracle中可以对表进行版本化,可以实现类似的功能,具体没有研究过
      

  2.   

    对一个表进行操作的触发器我已经写出来了,也就是当这个表有数据被insert,update,delete时,往某个临时表中写入数据,如下:
    CREATE OR REPLACE TRIGGER test_data_change
     AFTER INSERT OR UPDATE OR DELETE ON tbl_test_datachange
    FOR EACH ROW
    BEGIN
    if inserting then
    insert into test_datachange values (:new.tableid,sysdate,'I');
    end if;
    if updating then
    insert into test_datachange values (:new.tableid,sysdate,'U');
    end if;
    if deleting then
    insert into test_datachange values (:new.tableid,sysdate,'D');
    end if;END test_data_change;如果多个表的数据有变动时,都写入一个临时表,问题是怎么获得这些表的表名,写入象huataixiang19810225(无名)所说的临时表的tablename字段啊
      

  3.   

    楼主的触发器中tbl_test_datachange就是表名