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

SQL Anywhere 11.0.1 (中文) » MobiLink - 服务器管理 » 使用 MobiLink 服务器技术 » 同步技术

 

处理删除

从统一数据库中删除行时,需要对该行进行记录,以便可以从任何包含该行的远程数据库中删除该行。可以使用逻辑删除或影子表两种方法来执行此操作。

  • 逻辑删除   使用此方法时,行并未删除。在状态列中将不再需要的数据标记为非活动。可在 download_cursor 和 download_delete_cursor 的 WHERE 子句中引用该行的状态。

    CustDB 示例应用程序在 ULEmpCust 表中也应用了此技术,该示例在操作列中使用 D 表示 [删除]。脚本使用该值从远程数据库中删除记录,并在同步完成时从统一数据库中删除该记录。CustDB 在 ULOrder 表中也使用了此技术,Contact 示例则在 Customer、Contact 和 Product 表中使用了此技术。

    MobiLink 同步模型支持逻辑删除,它会假定逻辑删除列仅存在于统一数据库中而不在远程数据库中。在将统一模式复制到新的远程模式时,将忽略所有与模型的同步设置中的逻辑删除列相匹配的列。对于新模型,将删除缺省列名称。

    将逻辑删除列名称添加至远程模式:

    1. 在 [下载删除] 页面的 [创建同步模型向导] 中,选择 [使用逻辑删除]。

    2. 重命名逻辑删除列,以使其不与统一数据库中的任何列名称相匹配。

    3. 完成向导后,更新远程模式并保留缺省表选择。逻辑删除列名称将出现在模式更改列表中,并将被添加到远程模式中。

    注意

    您需要设置列映射,将远程数据库的逻辑删除列映射到统一数据库的逻辑删除列。

  • 影子表   使用此方法时,将创建一个影子表来存储被删除的行的主键值。删除一行后,触发器将填充影子表。download_delete_cursor 可以使用影子表从远程数据库中删除行。影子表只需要包含真实表中的主键列。

请参见编写 download_delete_cursor 脚本


暂停删除同步