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

SQL Anywhere 12.0.0 (中文) » SQL Remote » 创建 SQL Remote 系统 » 了解基于事务日志的复制

 

复制 UPDATE 语句

UPDATE 语句在被复制时可能不会完全与输入数据库时一样。以下情形介绍了 UPDATE 语句是如何被复制的:

  • 如果某 UPDATE 语句具有更新给定远程用户的预订中的行的作用,则将其作为 UPDATE 语句发送给该用户。

  • 如果某 UPDATE 语句具有从给定远程用户的预订中删除行的作用,则将其作为 DELETE 语句发送给该用户。

  • 如果某 UPDATE 语句具有向给定远程用户的预订中添加行的作用,则将其作为 INSERT 语句发送给该用户。

为了演示如何复制 UPDATE 语句,以下示例将对用户 Ann、Marc 和 ManagerSteve 使用一个统一数据库和三个远程数据库。

其 Rep 列包含 Marc 和 Ann 的发布。每个预订者将接收以其自己的名称标记的行。

在统一数据库上,有一个名为 cons 的发布,该发布是用以下语句创建的:

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

Ann 和 Marc 通过他们各自的 Rep 列值预订 cons 发布。而 ManagerSteve 使用 Ann 和 Marc 的 Rep 列值预订 cons 发布。以下语句将使三个用户预订发布 cons:



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";

在统一数据库上,将某行的 Rep 值从 Marc 更改为 Ann 的 UPDATE 语句被复制到:

  • Marc(作为 DELETE 语句)。

  • Ann(作为 INSERT 语句)。

  • ManagerSteve(作为 UPDATE 语句)。

复制后,统一数据库和远程数据库中的内容。

这种在预订者之间重新指派行的做法有时称为地域调整,因为它是销售人员自动应用程序的常见功能,在这种功能中客户被定期重新指派给销售代表。

 另请参见