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

SQL Anywhere 12.0.1 » SQL Remote » SQL Remote システムの作成 » トランザクションログベースのレプリケーション

 

UPDATE 文のレプリケーション

UPDATE 文では、データベースに入力された文とまったく同じ文がレプリケートされない場合があります。次の例で、UPDATE 文がレプリケートされる仕組みについて説明します。

  • UPDATE 文は、いずれかのリモートユーザーのサブスクリプションでローを更新する場合、UPDATE 文としてそのユーザーに送信されます。

  • UPDATE 文は、いずれかのリモートユーザーのサブスクリプションからローを削除する場合、DELETE 文としてそのユーザーに送信されます。

  • UPDATE 文は、いずれかのリモートユーザーのサブスクリプションにローを追加する場合、INSERT 文としてそのユーザーに送信されます。

UPDATE 文がレプリケートされる仕組みを説明するため、次の例では、統合データベースとユーザー Ann、Marc、ManagerSteve の 3 つのリモートデータベースを使用します。

Marc と Ann を含む Rep カラムを使用したパブリケーション。各サブスクライバーは、各自の名前がマークされたローを受信します。

統合データベースには、次の文を使用して作成された、cons という名前のパブリケーションが存在します。

CREATE PUBLICATION "cons"."p1" (
 TABLE "DBA"."customers" ( "ID", "Rep") SUBSCRIBE BY repid
);

Ann と Marc は、cons パブリケーションに対して、それぞれの Rep カラム値でサブスクライブします。ManagerSteve は、cons パブリケーションに対して、Ann と Marc の Rep カラム値を使用してサブスクライブします。次の文は、パブリケーション cons に対して 3 人のユーザーをサブスクライブします。



CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Ann' ) 
  FOR "Ann";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Marc' ) 
  FOR "Marc";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Ann' ) 
  FOR "ManagerSteve";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Marc' ) 
  FOR "ManagerSteve";

統合データベースでは、Marc から Ann にローの Rep 値を変更する UPDATE 文が、次のようにレプリケートされます。

  • Marc に対しては DELETE 文として。

  • Ann に対しては INSERT 文として。

  • ManagerSteve に対しては UPDATE 文として。

レプリケーション後の統合データベースとリモートデータベースの内容。

サブスクライバー間のローの再割り当ては、営業担当者間に顧客を定期的に再割り当てする営業支援アプリケーションに共通の機能で、「領域の再編成」とも呼ばれます。

 参照