Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 确保数据完整性 » 使用列缺省值

 

NEWID 缺省值

通用唯一标识符(Universally Unique Identifier,简称 UUID),也称为全局唯一标识符(Globally Unique Identifier,简称 GUID)可用于标识在表中唯一的行。在一台计算机上所生成的值与在其它计算机上生成的值不相同。因此,可将它们用作复制和同步环境中的键。

相比较而言,将 UUID 值与 GLOBAL AUTOINCREMENT 值用作主键各有优缺点。例如:

  • UUID 比 GLOBAL AUTOINCREMENT 更易于设置,因为无需为每个远程数据库都分配一个唯一的数据库 ID。也无需考虑系统中数据库的数目或单个表中的行数。可以使用抽取实用程序 (dbxtract) 来进行数据库 ID 的指派。如果使用 BIGINT 数据类型,使用 GLOBAL AUTOINCREMENT 时通常不用考虑这个问题,但使用较小的数据类型时需要考虑这一点。

  • UUID 值比 GLOBAL AUTOINCREMENT 所需的值大得多,并且要求主表和外表有更多的表空间。使用 UUID 时,这些列中的索引的效率较低。简言之,GLOBAL AUTOINCREMENT 的表现可能更好些。

  • UUID 不具有隐式排序。例如,如果 A 和 B 是 UUID 值,A > B 并不意味着 A 在 B 之后生成(即使 A 和 B 在同一台计算机上生成)。如果您需要此行为,可能需要额外的列和索引。

 另请参见