Collection Contents 上一页 下一页 PDF

SQL Remote 用户指南

适用于 Adaptive Server Anywhere 的 SQL Remote 设计

确保主键的唯一性


主键值必须是唯一的。当所有用户都连接到同一数据库时,保持唯一值是没有问题的。如果某个用户尝试重用某个值,则 INSERT 语句会失败。

复制系统中的情况与此不同,因为用户与多个数据库连接。当连接到不同数据库的两个用户插入使用相同主键值的行时,潜在的问题就会发生。两个用户的语句都将成功;这是因为,在各自的数据库中值是唯一的。

但是,当连接到不同数据库的两个用户插入使用相同主键值的行时,复制系统中将出现问题。第二个到达复制系统中给定数据库的插入操作将会失败。由于 SQL Remote 是一个供非经常性连接用户使用的复制系统,所以该系统中不可能有覆盖所有数据库的锁定机制。有必要相应地设计您的 SQL Remote 系统,以确保不会发生主键重复的错误。

如果要通过设计来避免 SQL Remote 系统中出现主键错误,则必须保证可能在多个站点修改的表的主键是唯一的。有多种方法可以达到这一目的。本章将介绍两种常用的、经济并且可靠的方法。

  1. 使用 Adaptive Server Anywhere 的缺省全局自动增量功能。

  2. 使用主键池在每个站点维护一个未使用的、唯一主键值的列表。

您可以单独使用任何一种方法或联合使用这两种方法来避免出现重复的值。


使用全局自动增量缺省列值
使用主键池
主键池表
复制主键池
填充和补充键池
添加新客户
主键池摘要

Collection Contents 上一页 下一页 PDF