受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

9.14. UUID 函数 #

Table 9.45展示了PostgreSQL 中可用于生成 UUID 的函数。

Table 9.45. UUID 生成函数

函数

描述

示例

gen_random_uuid ( ) → uuid

uuidv4 ( ) → uuid

生成一个版本 4(随机)的 UUID

gen_random_uuid()5b30857f-0bfa-48b5-ac0b-5c64e28078d1

uuidv4()b42410ee-132f-42ee-9e4f-09a6485c95b8

uuidv7 ( [ shift interval ] ) → uuid

生成一个版本 7(按时间排序)的 UUID。其时间戳由 UNIX 时间戳 (毫秒精度)加上亚毫秒时间戳和随机值计算得到。可选参数 shift会按给定的interval 偏移计算出的时间戳。

uuidv7()019535d9-3df7-79fb-b466-fa907fa17f9e


Note

uuid-ossp模块还提供了额外的函数,用于实现其他标准 UUID 生成算法。

Table 9.46展示了PostgreSQL 中可用于从 UUID 提取信息的函数。

Table 9.46. UUID 提取函数

函数

描述

示例

uuid_extract_timestamp ( uuid ) → timestamp with time zone

从版本 1 或 7 的 UUID 中提取 timestamp with time zone。对于其他版本, 该函数返回 null。注意,提取出的时间戳不一定与 UUID 生成时刻完全一致; 这取决于生成该 UUID 的实现。

uuid_extract_timestamp('019535d9-3df7-79fb-b466-​fa907fa17f9e'::uuid)2025-02-23 21:46:24.503-05

uuid_extract_version ( uuid ) → smallint

从符合 RFC 9562 所描述某一变体的 UUID 中提取版本号。对于其他变体,该函数返回 null。 例如,对于由gen_random_uuid()生成的 UUID, 该函数将返回 4。

uuid_extract_version('41db1265-8bc1-4ab3-992f-​885799a4af1d'::uuid)4

uuid_extract_version('019535d9-3df7-79fb-b466-​fa907fa17f9e'::uuid)7


PostgreSQL也为 UUID 提供了 Table 9.1中展示的常用比较操作符。

关于PostgreSQLuuid数据类型的细节,请参见 Section 8.12

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。