适用于 Adaptive Server Anywhere 的 SQL Remote 设计
下列事件发生时将出现更新冲突:
用户 1 在远程站点 1 更新行。
用户 2 在远程站点 2 更新相同的行。
来自用户 1 的更新被复制到统一数据库。
来自用户 2 的更新也被复制到统一数据库。
当 SQL Remote 消息代理复制 UPDATE 语句时,它为每行执行单独的更新。另外,消息还包含旧的行值用于进行比较。当来自用户 2 的更新到达统一数据库时,行中的值不是消息中记录的那些值。
缺省情况下,UPDATE 仍继续进行,因此用户 2 的更新(最后到达统一数据库的更新)成为统一数据库中的值,并被复制到预订该行的所有其它数据库。
通常,解决冲突的缺省方法是:最新的操作(在本例中为用户 2 的操作)成功,不生成冲突报告。来自用户 1 的更新丢失。SQL Remote 也允许自定义冲突解决方法,使用触发器以一种对被更改的数据有意义的方式解决冲突。
冲突解决不适用于主键更新UPDATE 冲突不 适用于主键更新。您不能在 SQL Remote 系统中更新主键。必须通过适当的设计将主键冲突排除在该系统之外。 |
本节将介绍如何在统一数据库中将冲突解决方法构建在 SQL Remote 系统中。
SQL Remote 如何处理冲突
实现冲突解决
使用冲突解决触发器
冲突解决示例
防止参照完整性错误的设计
设计触发器以防止错误
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。