Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Remote » SQL Remote のレプリケーション設計 » SQL Remote のレプリケーション設計と設定 » 更新の競合

 

トリガを使用したカスタム競合解決

カスタム競合解決はいくつかの手法を取ることができます。たとえば、アプリケーションによっては、解決は次のようになる可能性があります。

カスタム競合解決を使用するには、RESOLVE UPDATE トリガを記述する必要があります。

RESOLVE UPDATE 競合解決トリガの使用

RESOLVE UPDATE トリガの起動後に、各ローが更新されます。RESOLVE UPDATE トリガの構文は、次のとおりです。

CREATE TRIGGER trigger-name
RESOLVE UPDATE
OF column-name ON table-name 
[ REFERENCING [ OLD AS old-val ]
   [ NEW AS new-val ]
     [ REMOTE AS remote-val ] ] 
FOR EACH ROW 
BEGIN
   ... 
END

REFERENCING 句を使用すると、更新するテーブルのロー値 (OLD)、更新用のロー値 (NEW)、VERIFY 句によれば存在するはずのロー (REMOTE) にアクセスできます。REMOTE AS 句の中で参照できるのは、VERIFY 句内のカラムのみです。その他のカラムの場合は、カラムが見つかりません。というエラーが返されます。

CURRENT REMOTE USER 特殊定数の使用

DBREMOTE は、マニュアルに記載されていない REMOTE USER 文を実行すると、CURRENT REMOTE USER を設定します。値は、DBREMOTE からの接続の場合を除き、NULL になります。

競合のレポートをテーブルに配置する RESOLVE UPDATE トリガに CURRENT REMOTE USER を使用して、競合を発生させたユーザを特定できます。

参照

日付の競合解決
在庫数の競合解決