日期:2014-05-17  浏览次数:21018 次

菜鸟求助触发器怎么写啊
现在有两个数据库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)


------解决方案--------------------
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;

------解决方案--------------------
上面还不完全

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;

------解决方案--------------------
:new,:old是觸發器中兩張系統臨時表

:old你表中舊的數據,:new表中新增或更新的新值

還有觸發器中不要用commit