1

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

4

2 回答 2

0
  1. 如果您在触发器正文中对昵称调用 insert/update/delete 语句

    昵称不能是触发器中的更新目标。

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

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

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

  2. 如果您在存储过程中调用插入/更新/删除语句并从触发器主体调用该存储过程。

    您将遇到 SQLSTATE = 55047 的错误 SQL20136N,如果您尝试访问嵌套路径中的昵称,则会发生这种情况,如下所示:

    • 本地数据库服务器上的表 TAB1
    • 昵称 NICK1 引用远程联合服务器上的某个表
    • 将访问 NICK1 的本地存储过程 STP1
    • 在 TAB1 上插入触发器后,它将调用存储过程 STP1

    在 TAB1 上的触发器被触发后,DB2 将开始执行存储过程 STP1。一旦此存储过程尝试访问昵称 NICK1,您将收到错误 SQL20136N。

    在 IBM DB2 LUW 中,您只有对触发器主体内的联合对象的读取访问权。

    插入、更新和删除请求将继续失败,因为它们可能在某些情况下导致读/写冲突

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

于 2014-01-19T05:14:56.957 回答
0

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

于 2013-09-23T15:20:08.730 回答