2013-09-23 67 views
0

我有两个数据库db1(Table1)和db2(Table2)。我在db1 Table Tabl1插入上创建了一个触发器。我想将这些数据添加到db2的Table2中。我知道在MySQL中这是可能的,但我想在DB2中做同样的事情。我们可以在db2中做到这一点。任何回应将不胜感激。触发一个DB2数据库并插入另一个DB2数据库

回答

0
  1. 如果你打电话的插入/更新/上昵称删除触发器主体

    内声明昵称不能在一个触发更新的目标。

    您可以在触发器正文的昵称中包含SELECT语句。

    您不能在触发器正文的昵称中包含INSERT,UPDATE或DELETE语句。

    http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.ii.doc/admin/tfpwrk01.htm

  2. 如果调用插入/更新/ StoredProcedure的范围内删除声明,并呼吁从触发体存储过程。

    你会遇到错误SQL20136N与SQLSTATE = 55047,如果你尝试嵌套路径中访问一个绰号像下面会发生这种情况:本地数据库服务器

  3. 昵称NICK1引用上

    • 表TAB1在远程联合 服务器
    • 本地存储过程STP1一些表插入触发器之后将访问NICK1
    • 上TAB1这将调用存储过程 STP1

    在TAB1触发器被触发后,DB2将开始执行 存储过程STP1。只要此存储过程立即访问 访问昵称NICK1,您将收到错误SQL20136N。

    在IBM DB2 LUW中,您只能读取触发器正文中的联合对象的访问权限。

    插入,更新和删除请求仍然会失败,因为 否则可能会导致读取在某些情况下

    http://www-01.ibm.com/support/docview.wss?uid=swg1JR24656

0

您可以通过使用联合来模拟。因为它是数据库的本地数据库,所以您需要使用远程表。

+1

否/写冲突,至少在DB2 LUW你不能,因为引用昵称在DML里面不允许使用触发器:[“不支持在复合SQL内的昵称上搜索更新,搜索删除,插入或合并操作。”](http://pic.dhe.ibm.com/infocenter/db2luw/ v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0000931.html) – mustaccio

+0

已使用联盟,但仍无法更新n ickname在触发器内。 – MAK

+0

如何调用在其他数据库中执行更新的外部函数的触发器呢? – AngocA

相关问题