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

SQL Anywhere 11.0.1 (日本語) » Mobile Link - クライアント管理 » Mobile Link 用 SQL Anywhere クライアント » SQL Anywhere クライアント » データのパブリッシュ

 

テーブル内の一部のローだけをパブリッシュする

パブリケーション定義で WHERE 句の指定がないと、パブリケーション内で変更されたすべてのローがアップロードされます。パブリケーション内のアーティクルに WHERE 句を追加することで、変更されたローのうち WHERE 句の探索条件に一致するローのみをアップロードするよう制限できます。

WHERE 句内の探索条件では、アーティクルに含まれるカラムだけを参照できます。また、WHERE 句では次のいずれも使用できません。

  • サブクエリ

  • 変数

  • 非決定的関数

これらの条件は強制ではありませんが、従わなかった場合、予期しない結果が発生します。WHERE 句に関連するエラーは、パブリケーションの定義時ではなく、その WHERE 句で参照されたテーブルに対して DML が実行されたときに発生します。

♦  WHERE 句を使用してパブリケーションを作成するには、次の手順に従います (Sybase Central 管理モードの場合)。
  1. SQL Anywhere プラグインを使用して、DBA 権限のあるユーザとしてリモート・データベースに接続します。

  2. [パブリケーション] フォルダを開きます。

  3. [ファイル] - [新規] - [パブリケーション] を選択します。

  4. [新しいパブリケーションの名前を指定してください。] フィールドに、新しいパブリケーションの名前を入力します。[次へ] をクリックします。

  5. [次へ] をクリックします。

  6. [使用可能なテーブル] リストでテーブルを選択します。[追加] をクリックします。

  7. [次へ] をクリックします。

  8. [次へ] をクリックします。

  9. [アーティクル] リストでテーブルを選択し、[選択したアーティクルには次の WHERE 句があります] ウィンドウ枠で探索条件を入力します。

  10. [完了] をクリックします。

♦  WHERE 句を使用してパブリケーションを作成するには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとしてリモート・データベースに接続します。

  2. パブリケーション対象のテーブルと WHERE 条件を含む CREATE PUBLICATION 文を実行します。

    CREATE PUBLICATION 文 [Mobile Link] [SQL Remote]を参照してください。

次の例は、Employees テーブル全体を含み、SalesOrders テーブルの中でアーカイブ済みとしてマーク付けされていないすべてのローを含むパブリケーションを作成します。

CREATE PUBLICATION main_publication ( 
TABLE Employees, 
TABLE SalesOrders
WHERE archived = 'N' 
);

テーブル内の archived カラムを N 以外の値から N に変更すると、次回の同期中に Mobile Link サーバに delete が送信されます。逆に、archived カラムを N から N 以外の値に変更すると、insert が送信されます。archived カラムに対する更新は、Mobile Link サーバに送信されません