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

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.0 已于 2015 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

F.40. uuid-ossp #

uuid-ossp模块提供一些函数,可使用几种标准算法之一生成通用唯一标识符(UUID)。它还提供一些函数,用于生成某些特殊的 UUID 常量。

此模块依赖于 OSSP UUID 库,其网址为 http://www.ossp.org/pkg/lib/uuid/

F.40.1. uuid-ossp Functions

表 F.29显示了可用于生成 UUID 的函数。相关标准 ITU-T Rec. X.667、ISO/IEC 9834-8:2005 和 RFC 4122 规定了生成 UUID 的四种算法,由版本号 1、3、4 和 5 标识。(不存在版本 2 算法。)每种算法可能适用于不同的一组应用。

表 F.29. 用于生成 UUID 的函数

Function Description
uuid_generate_v1()

此函数生成第 1 版 UUID。这需要使用计算机的 MAC 地址和时间戳。请注意,这类 UUID 会泄露创建该标识符的计算机身份及创建时间,因此可能不适合某些对安全敏感的应用。

uuid_generate_v1mc()

此函数生成第 1 版 UUID,但使用随机多播 MAC 地址,而不是计算机的真实 MAC 地址。

uuid_generate_v3(namespace uuid, name text)

此函数在给定命名空间中使用指定输入名称生成第 3 版 UUID。命名空间应是表 F.30中所示uuid_ns_*()函数生成的特殊常量之一。(理论上它可以是任意 UUID。)名称是所选命名空间中的一个标识符。

例如:

SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org');

名称参数会先做 MD5 哈希,因此无法从生成的 UUID 中反推出明文内容。 通过这种方法生成 UUID 不包含随机因素,也不依赖于环境,因此结果可重现。

uuid_generate_v4()

此函数生成第 4 版 UUID,它完全由随机数派生。

uuid_generate_v5(namespace uuid, name text)

此函数生成第 5 版 UUID,其工作方式类似于第 3 版 UUID,但使用 SHA-1 作为哈希方法。由于 SHA-1 被认为比 MD5 更安全,应优先使用第 5 版而不是第 3 版。


表 F.30. 返回 UUID 常量的函数

uuid_nil()

一个nil UUID 常量,不会作为真实 UUID 出现。

uuid_ns_dns()

指定 UUID 的 DNS 命名空间的常量。

uuid_ns_url()

指定 UUID 的 URL 命名空间的常量。

uuid_ns_oid()

指定 UUID 的 ISO 对象标识符(OID)命名空间的常量。(这涉及 ASN.1 OID,与PostgreSQL使用的 OID 无关。)

uuid_ns_x500()

指定 UUID 的 X.500 可辨识名称(DN)命名空间的常量。


F.40.2. 作者

Peter Eisentraut

提交更正

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