通常、リモートデータベースには、統合データベースに存在するトリガと同じトリガが定義されています。
デフォルトでは、SQL Remote はトリガによって実行される動作をレプリケートしません。代わりに、統合データベースでトリガを起動するアクションが、リモートデータベースにレプリケートされると、その複製トリガはリモートデータベースで自動的に起動します。これによって、権限に関する問題と各動作が 2 回発生する可能性を回避します。この原則には次のような例外があります。
RESOLVE UPDATE トリガのレプリケーション 競合解析または RESOLVE UPDATE トリガが実行する動作は、統合データベースから、競合を発生させたメッセージを送信したリモートデータベースを含む、すべてのリモートデータベースにレプリケートされます。
BEFORE トリガのレプリケーション 更新中のローを変更する BEFORE トリガの動作は、UPDATE 文が動作する前にレプリケートされます。
たとえば、ローの更新回数を追跡するカウンタカラムをロー内で増加させる BEFORE UPDATE トリガは、レプリケートされると 2 回カウントが行われます。これは、UPDATE 文がレプリケートされると、リモートデータベースの BEFORE UPDATE トリガが起動されるためです。
また、カラムを最終更新時間に設定する BEFORE UPDATE トリガは、UPDATE 文がレプリケートされた時間を取得します。
この問題を回避するには、サブスクライバデータベースに BEFORE UPDATE トリガが存在しないこと、または BEFORE UPDATE トリガがレプリケートされた動作を実行しないことを確認してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |