↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

百科 / 数据类型 / 其他内置类型

uuid

通用唯一标识符

当前查看 PostgreSQL 18.6。

PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。

定义

通用唯一标识符

uuid
目录名称
pg_catalog.uuid
类型 OID
2950
类型种类
基础类型
声明长度
16 字节
存储策略
plain
输入函数
uuid_in
输出函数
uuid_out

中文手册

阅读完整手册章节

阅读来源定义

8.12. UUID类型

uuid 数据类型用于存储由 RFC 9562、ISO/IEC 9834-8:2005 及相关标准定义的通用唯一标识符(UUID)。(有些系统把这种数据类型称为全局唯一标识符,或 GUID。)这种标识符是一个 128 位的量,由某种算法生成,该算法的设计目标是:使已知宇宙中其他人用同一算法生成出相同标识符的概率极低。因此,对于分布式系统而言,这类标识符能比序列生成器提供更好的唯一性保证,因为序列生成器仅在单个数据库内唯一。

RFC 9562 定义了 8 种不同的 UUID 版本。每个版本对生成新 UUID 值都有各自的要求,也各自具备不同的优缺点。PostgreSQL 原生支持使用 UUIDv4 和 UUIDv7 算法生成 UUID。或者,也可以在数据库外部使用任意算法生成 UUID 值。uuid 数据类型可用于存储任何 UUID,无论其来源和版本为何。

UUID 写作一串小写十六进制数字,并用连字符分隔成若干组:先是 8 位一组,接着是三个 4 位组,最后是一个 12 位组。总共 32 个十六进制数字表示 128 个二进制位。标准形式的 UUID 例如:

a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

PostgreSQL 还接受以下替代输入形式:使用大写十六进制数字、用花括号包围标准格式、省略部分或全部连字符,以及在任意四位数字组后添加连字符。例如:

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,请参见第 9.14 节。

系统目录属性

此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。

oid
2950
descr
UUID
typacl
_null_
typlen
16
typelem
0
typname
uuid
typsend
uuid_send
typtype
b
typalign
c
typarray
0
typbyval
f
typdelim
','
typinput
uuid_in
typmodin
-
typndims
0
typowner
POSTGRES
typrelid
0
typmodout
-
typoutput
uuid_out
typtypmod
-1
typanalyze
-
typdefault
_null_
typnotnull
f
typreceive
uuid_recv
typstorage
p
typbasetype
0
typcategory
U
typcollation
0
typisdefined
t
typnamespace
pg_catalog
typsubscript
-
typdefaultbin
_null_
array_type_oid
2951
typispreferred
f
array_type_name
_uuid

运算符重载 6

每种操作数签名均为独立重载。实现函数和返回类型来自同一源码构建。

运算符左操作数右操作数返回类型含义实现函数
=uuiduuidbool等于uuid_eq
<>uuiduuidbool不等于uuid_ne
<uuiduuidbool小于uuid_lt
>uuiduuidbool大于uuid_gt
<=uuiduuidbool小于等于uuid_le
>=uuiduuidbool大于等于uuid_ge

操作符类 5

声明输入类型与此类型相符的操作符类。多态操作符类、类型转换和表达式索引还可能提供其他索引路径;不能仅凭此表判断是否支持索引。

操作符类索引方法输入类型操作符族默认存储类型
uuid_opsbtreeuuidbtree/uuid_ops是与输入类型相同
uuid_opshashuuidhash/uuid_ops是与输入类型相同
uuid_minmax_opsbrinuuidbrin/uuid_minmax_ops是uuid
uuid_minmax_multi_opsbrinuuidbrin/uuid_minmax_multi_ops否uuid
uuid_bloom_opsbrinuuidbrin/uuid_bloom_ops否uuid

版本比较

PostgreSQL 17.11 → 18.6。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。

这两个样本的系统目录和结构化属性没有变化。

这些构建的文档也有差异,请查看对应版本的手册定义。

文档与源码

构建
18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

相关条目

全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。