当所有用户都连接到同一数据库时,确保每个 INSERT 语句都使用唯一主键是没有问题的。如果某用户尝试重用某个主键,则 INSERT 语句会失败。
复制系统中的情况与此不同,因为用户与多个数据库相连接。当连接到不同远程数据库的两个用户插入使用相同主键值的行时,就会出现潜在的问题。他们的语句都会各自成功,因为主键值在每个远程数据库中是唯一的。
但是,当这两个用户通过相同的统一数据库复制他们自己的数据库时,就会出现问题。第一个要通过统一数据库复制的数据库会成功。但第二个要到达复制系统中给定数据库的插入操作将会失败。
要避免主键错误,必须确保在数据库插入某行时,该行的主键在系统的所有数据库中是唯一的。有多种方法可以实现此目标,包括:
可以单独使用上述方法,也可以同时使用上述方法来避免出现重复主键。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |