2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: 开发版

9.14. UUID 函数 #

表 9.45 显示了可用于生成 UUID 的 PostgreSQL 函数。

表 9.45. UUID生成函数

函数

描述

示例

gen_random_uuiduuid

uuidv4uuid

生成一个版本 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


注意

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

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

表 9.46. UUID提取函数

函数

描述

示例

uuid_extract_timestamp ( uuid ) → timestamp with time zone

从 UUID 版本 1 和 7 中提取 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 还提供了 表 9.1 中所示的 UUID 的常规比较运算符。

有关 PostgreSQLuuid 数据类型的详细信息,请参阅 8.12 节

提交更正

如果您在文档中发现任何不正确、与您对特定功能的实际体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。