PostgreSQL中使用UUID
UUID(Universal Unique Identifier)或者 GUID(Globally Unique Identifier)是一个 128 比特的数字,可以用于唯一标识每个网络对象或资源。由于它的生成机制,一个 UUID 可以保证几乎不会与其他 UUID 重复,因此常常用于生成数据库中的主键值。
1.pgcrypto 模块提供的 uuid
PostgreSQL 提供了一个用于加/解密的扩展模块 pgcrypto,其中的 gen_random_uuid() 函数可以用于返回一个 version 4 的随机 UUID。
2.uuid-ossp 模块提供的 uuid
uuid-ossp模块提供函数使用几种标准算法之一产生通用唯一标识符(UUID)。还提供产生某些特殊 UUID 常量的函数。
1.将当前目录转移到 PostgreSQL 源代码目录下的 contrib;如:
2.执行如下命令来安装扩展模块
如果要安装 uuid-ossp 模块,需要在执行安装扩展模块之前,执行 configure 并添加 --with-uuid=xxx,xxx取值为:
然后再执行安装扩展模块的命令。
3.检查是否安装,在 PostgreSQL 的安装目录下的 /share/extension 目录下,查看是否有模块相关的文件。如:
注: gen_random_uuid() 从 PostgreSQL 13 开始成为了一个内置函数
如果您所使用的PostgreSQL版本在13以上,则不需要执行如下语句:
生成uuid:
如果想要生成没有中划线(-)的 UUID 字符串,可以使用 REPLACE 函数:
查看包含的函数:
执行如下命令生成 uuid: