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 節

提交更正

如果您在文件中發現任何不正確、與您對特定功能的實際體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。