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

SQL Anywhere 12.0.1 » Mobile Link サーバー管理 » Mobile Link サーバーテクノロジ » 同期の方法

 

削除

ローを統合データベースから削除する場合、download_delete_cursor で明示的にローを選択して、そのローが格納されているすべてのリモートデータベースから削除できるように、ローのレコードが必要です。これを行う 2 つの方法として、論理削除を使用する方法と、シャドウテーブルを使用する方法があります。

  • 論理削除   この方法では、ローは削除されません。不要になったデータについては、ステータスカラムで非アクティブのマークが付けられます。download_cursor と download_delete_cursor の WHERE 句やほとんどのアプリケーションクエリでは、ローのステータスを参照できます。

    この方法は、CustDB サンプルアプリケーションで使用されており、ULEmpCust.action カラムには削除を示す "D" が入っています。スクリプトでは、この値を使用してリモートデータベースからレコードを削除し、さらに、同期処理の最後に統合データベースからもレコードを削除します。CustDB ではこの方法を ULOrder テーブルに使用し、Contact サンプルではこの方法を Customer、Contact、Product テーブルに使用しています。

    Mobile Link 同期モデルでの論理削除のサポートは、論理削除カラムが統合データベースのみにあり、リモートにはないことを前提としています。統合スキーマを新しいリモートスキーマにコピーする場合、モデルの同期設定の論理削除カラムに対応するすべてのカラムを除外します。新しいモデルでは、デフォルトのカラム名は deleted です。

    論理削除カラム名をリモートスキーマに追加するには、次の手順に従います。

    1. 同期モデル作成ウィザード[削除のダウンロード] ページで、[論理削除を使用する] をクリックします。

    2. 論理削除カラム名を変更し、統合データベースのどのカラム名とも一致しないようにします。

    3. ウィザードが完了したら、リモートスキーマを更新し、デフォルトのテーブル選択を保持します。論理削除カラム名がスキーマ変更リストに表示され、リモートスキーマに追加されます。

    注意

    リモートの論理削除カラムのカラムマッピングを統合データベースの論理削除カラムに設定する必要があります。

  • シャドウテーブル   この方法では、シャドウテーブルを作成し、削除したローのプライマリキー値をそこに格納します。ローが削除されると、1 つのトリガーによってシャドウテーブルが設定されます。download_delete_cursor スクリプトは、シャドウテーブルを使用して、リモートデータベースからローを削除します。シャドウテーブルには、実際のテーブルのプライマリキーカラムだけが必要です。

 参照

削除同期の一時停止