各位大哥,老大,兄长:请问 不同的数据库 的触发器 插入更新删除 怎么写?各位大哥,老大,兄长
请问 不同的数据库间 的触发器 插入更新删除  怎么写?需求:我在  一个数据库jmt1/jmt1@ora1
        插入更新删除 table1  (id,name,content)就使  另一个数据库jmt2/jmt2@ora2
        插入更新删除 table2  (c_id,c_name,c_content)请问我怎么写?

解决方案 »

  1.   

    在欲创建触发器的数据库(testD1)中创建一个数据库链接,链接到目标数据库(testD2):
    --建立一个连接到testD2数据库的链接,使用用户名testU2,密码test连接
    CREATE DATABASE LINK testLK CONNECT TO "testD2" 
    IDENTIFIED BY "testU2" 
    USING 'test' 在testD1数据库的testT1表上建立一个触发器实现功能:
    create or replace trigger testU1.test after
    insert on testT1 for each row begin
    insert into testU2.testT2@testLK values(new.test1);
    end;这样可否?
      

  2.   

    帮忙解决一下,我的问题和楼主一样,基本的都已解决了。现在的问题是:1、插入更新删除能写在一个触发器里吗?2、更新时,怎么指定只更新要更新的记录,而不是全部。
    例如:
    create or replace trigger triTalble1
      after update on Talble1
      for each row
    declare
      -- local variables here
    begin
      Update Talble1@Link_Gis
      Set ColA = :new.ColA 
      Where ColumID = :old.ColumID ;
    end triTalble1;
    更新数据后,会把Talble1@Link_Gis表中所有记录都更新,而我要的是只更新我当前更新的记录。
      

  3.   

    可以写在同一个trigger:
    create or replace trigger testU1.test after
    insert on testT1 for each row 
    begin
    when inserting then
    insert into testU2.testT2@testLK values(new.test1);
    end
    end;