8.12. UUID 类型

数据类型uuid存储 RFC 4122,ISO/IEC 9834-8:2005 和相关标准定义的通用唯一标识符(UUID)。 (某些系统将此数据类型称为全局唯一标识符,或称为 GUID 。)此标识符是一个 128 位的数量,该数量是由一种算法生成的,该算法的选择是使任何人都不太可能生成同一标识符否则在已知的宇宙中使用相同的算法。因此,对于分布式系统,这些标识符提供了比仅在单个数据库中唯一的序列生成器更好的唯一性保证。

UUID 是由小写的十六进制数字序列组成的,在由连字符分隔的几组中,特别是一组 8 位数字,然后是三组 4 位数字,再是一组 12 位数字,总共 32 位数字代表 128 位。此标准格式的 UUID 的示例是:

a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

PostgreSQL 也接受以下替代形式 Importing:使用大写数字,用大括号括起来的标准格式,省略一些或所有连字符,在任何四位数组之后添加连字符。例如:

A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}

输出始终为标准格式。

PostgreSQL 提供了 UUID 的存储和比较功能,但是核心数据库不包含任何用于生成 UUID 的功能,因为没有一种算法适合于每个应用程序。 uuid-ossp模块提供实现几种标准算法的功能。 pgcrypto模块还为随机 UUID 提供了生成功能。或者,UUID 可以由 Client 端应用程序或通过服务器端功能调用的其他库生成。