就是想做一个现有用户表,一个用户总表,在添加现有用户表中记录时在用户总表中也添加相同信息,同时添加操作时间,并考虑与原有记录的主键冲突问题,在更新的时候实现同步更新,在删除的时候查找用户总表中相同记录并更新其删除记录时间字段.
    自己查了一些,但是对于更新的触发没有找到太有用的,希望高手指点,能给出完整代码最好~~

解决方案 »

  1.   

    那你如果在INSERT的时候,总表里已经有了,怎么办?
    还有delete的时候,应该是记录delete的日期或者时间吧?而不是你说的“添加对应记录中删除时间字段
    "
      

  2.   

    基本上就是这样
    create or replace trigger test
    after delete or insert or update on 现有用户表
    for each row
    declare
    begin
     if inserting then
        MERGE INTO 用户总表 d
        USING (select :new.id id from dual where rownum=1) s
              ON (d.id = s.id)
              WHEN MATCHED THEN
                   UPDATE SET d.操作时间 = sysdate
              WHEN NOT MATCHED THEN
                   INSERT (d.id,d.操作时间) VALUES (s.id,sysdate);
     elsif deleting then
        update 用户总表 set 操作时间=sysdate where id=:old.id;
     elsif updating then
        update 用户总表 set 操作时间=sysdate where id=:old.id;
     end if;
    end;
    /
      

  3.   

    回复 ATGC(花开蝶舞,木秀鸟栖):
        非常感谢...代码很有帮助~~晚上添加完触发器就结贴!!