1

2 つのデータベース db1 (Table1) と db2 (Table2) があります。db1 テーブル Tabl1 挿入でトリガーを作成しました。そのデータを db2 の Table2 に追加したいと考えています。MySQLでも可能であることがわかりましたが、DB2でも同じことをしたいと思っています。これを db2 で実現できますか。任意の応答をいただければ幸いです。

4

2 に答える 2

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. ストアドプロシージャ内で挿入/更新/削除ステートメントを呼び出し、そのストアプロシージャをトリガー本体から呼び出す場合。

    SQLSTATE = 55047 のエラー SQL20136N が発生します。これは、次のようにネストされたパス内のニックネームにアクセスしようとすると発生します。

    • ローカル データベース サーバー上のテーブル TAB1
    • ニックネーム NICK1 は、リモート連合サーバー上のいくつかのテーブルを参照しています
    • NICK1 にアクセスするローカル ストアド プロシージャ STP1
    • ストアド プロシージャ STP1 を呼び出す TAB1 にトリガーを挿入した後

    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

使用されるフェデレーションによってそれをシミュレートできます。データベースに対してローカルであったため、リモート テーブルをフェレレートします。

于 2013-09-23T15:20:08.730 に答える