现在有两个数据库A(SID=AAA)和B(SID=BBB)
A库里的表
Table1   ID    NAME    DQ
         01    张三     湖北
         02    李四     湖南
B库的表
 Table2  nameid    name
         0001      张三
         0002      李四
 Table3  DQID     DQMC
         001      湖北
         002       湖南
Table4  djid    nameid    dqid
       00001    0001     001
现在都是往table4里面写数,而且都是ID  现在想写一个触发器就是当table4一有数据插入就往A库的TABLE1插入数据(table1存的都是直接的内容不是ID)

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER MY_TRIGGER
    AFTER INSERT ON Table4
    BEGIN
    INSERT INTO Table1
    SELECT c.djid, a.name,b.dqmc
    FROM Table2 a ,Table3 b,table4 c
    WHERE a.nameid=c.nameid AND b.dqid=c.dqid;
    COMMIT;
    END;
      

  2.   

    上面还不完全CREATE OR REPLACE TRIGGER My_Trigger
       AFTER INSERT ON Table4
    BEGIN
       INSERT INTO Table1
          SELECT c.Djid, a.NAME, b.Dqmc
            FROM Table2 a, Table3 b, Table4 c
           WHERE a.Nameid = c.Nameid AND b.Dqid = c.Dqid AND
                 c.Dqid = :new.dqid;
       COMMIT;
    END;
      

  3.   

    c.Dqid = :new.dqid;
    这一句是不是判断是否是新增加的数据?
    用c.djid = :new.djid 或者c.nameid = :new.nameid  都可以代替?
      

  4.   

    :new,:old是觸發器中兩張系統臨時表:old你表中舊的數據,:new表中新增或更新的新值還有觸發器中不要用commit