Collection Contents 上一页 下一页 PDF

SQL Remote 用户指南

适用于 Adaptive Server Enterprise 的 SQL Remote 设计

管理冲突


下列事件发生时将出现更新冲突:

  1. 用户 1 在远程站点 1 更新行。

  2. 用户 2 在远程站点 2 更新相同的行。

  3. 来自用户 1 的更新被复制到统一数据库。

  4. 来自用户 2 的更新也被复制到统一数据库。

当 SQL Remote 消息代理复制 UPDATE 语句时,它为每行执行单独的更新。另外,消息还包含旧的行值用于进行比较。当来自用户 2 的更新到达统一数据库时,行中的值不是消息中记录的那些值。

Conflict resolution: the second update overwrites the first update.
缺省冲突解决方法 

缺省情况下,UPDATE 仍继续进行,因此用户 2 的更新(最后到达统一数据库的更新)成为统一数据库中的值,并被复制到预订该行的所有其它数据库。通常,解决冲突的缺省方法是:最新的操作(在本例中为用户 2 的操作)成功,不生成冲突报告。来自用户 1 的更新丢失。

SQL Remote 也允许自定义冲突解决方法,使用存储过程以一种对被更改的数据有意义的方式解决冲突。

冲突不适用于主键 

UPDATE 冲突不适用于主键更新。如果被更新的列是主键,那么当来自用户 2 的更新到达统一数据库时,将不更新任何行。

本节将介绍如何在统一数据库中将冲突解决方法构建在 SQL Remote 系统中。


SQL Remote 如何处理冲突
实现冲突解决
第一个冲突解决示例
第二个冲突解决示例
防止参照完整性错误的设计

Collection Contents 上一页 下一页 PDF