选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.4 已于 2020 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

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 也接受其他输入形式:可以使用 大写字母、用花括号包围标准格式、省略部分或全部连字符,或者在任意 4 位分组后额外加上连字符。例如:

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。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。