本帖最后由 hwhtj 于 2012-07-16 11:15:57 编辑

解决方案 »

  1.   

    (删除表t2中相同id的那条记账)
    是指t2插入新纪录的时候要先删除Id相同的记录吗?
      

  2.   

    CREATE TABLE X1 (id NUMBER(5),code VARCHAR2(10));
    CREATE TABLE X2 (gh NUMBER(5),id NUMBER(5),code VARCHAR2(10));CREATE SEQUENCE seq_x2  
    MINVALUE 1 
    MAXVALUE 99999 
    START WITH 1 
    INCREMENT BY 1
    NOCACHE;
    SELECT seq_x2.NEXTVAL FROM dual;
    SELECT seq_x2.CURRVAL FROM dual;CREATE OR REPLACE TRIGGER xx1 
      AFTER INSERT OR DELETE ON x1 FOR EACH ROW 
    BEGIN 
      IF INSERTING THEN 
        INSERT INTO x2(gh,id,code) VALUES (seq_x2.NEXTVAL,:NEW.id,:NEW.code);
      END IF;  IF DELETING THEN 
        INSERT INTO x2(gh,id,code) VALUES (seq_x2.NEXTVAL,:old.id,:old.code);
      END IF;
    END xx1;INSERT INTO x1 VALUES (100,'c100');
    SELECT * FROM x2;
    GH  ID  CODE
    2 100 c100DELETE FROM X1 WHERE ID=100;
    SELECT * FROM x2;
    GH  ID  CODE
    2 100 c100
    3 100 c100
      

  3.   

    原来的记录要不要删除,看你的需求具体是什么,若不需要处理旧资料,则只需要考虑主键重复的问题,初步判断你说的T2表主键为gh,则只需要设置序列与旧资料不重复即可。另,如果单纯为了记录T1表的操作明细,建议楼主还是再增加一个字段区分操作,如可增加NL字段,新增则为N,删除则为L,若为更新,则写一笔L和N..