Collection Contents 上一页 下一页 PDF

SQL Remote 用户指南

适用于 Adaptive Server Anywhere 的 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 冲突 适用于主键更新。您不能在 SQL Remote 系统中更新主键。必须通过适当的设计将主键冲突排除在该系统之外。

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


SQL Remote 如何处理冲突
实现冲突解决
使用冲突解决触发器
冲突解决示例
防止参照完整性错误的设计
设计触发器以防止错误

Collection Contents 上一页 下一页 PDF