postgresql uuid(guid)生成函数及使用
在使用之前要增加uuid函数 uuid-ossp
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
然后就可以使用select调用了。
uuid-ossp
uuid-ossp模块提供使用多种标准算法之一生成普遍唯一标识符 (UUID) 的功能。也有功能来产生某些特殊的UUID常数。
此模块依赖于 OSSP UUID 库,该库可在http://www.ossp.org/pkg/lib/uuid/找到。
uuid-ossp 函数
UUID 生成函数
函数 | 描述 |
---|---|
uuid_generate_v1() |
此函数生成版本 1 UUID。这涉及到计算机的 MAC 地址和时间戳。请注意,此类 UUID 会显示创建标识符的计算机的身份及其创建识别码的时间,这可能使其不适合某些安全敏感的应用程序。 |
uuid_generate_v1mc() |
此功能生成版本 1 UUID,但使用随机多广播 MAC 地址,而不是计算机的真实 MAC 地址。 |
uuid_generate_v3(namespace uuid, name text) |
此函数使用指定的输入名称在给定名称空间中生成版本 3 UUID。命名空间应是下文函数生成的特殊常数之一。(理论上可能是任何UID。该名称是选定名称空间中的标识符。 |
uuid_generate_v4() |
此函数生成一个版本 4 UUID,它完全来自随机数。 |
uuid_generate_v5(namespace uuid, name text) |
此函数生成一个版本 5 UUID,它的工作原理与版本 3 UUID 类似,但 SHA-1 用作哈希方法除外。版本 5 应优先于版本 3,因为 SHA-1 被认为比 MD5 更安全。 |
例如:
SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org');
名称参数为 MD5-哈希德,因此无法从生成的 UUID 中提取清晰的字母。使用这种方法生成 UUID 没有随机或与环境相关的元素,因此可以重复。
函数返回 UUID 常数
uuid_nil() |
"零"UUID常数,它不会作为真正的 UUID 发生。 |
uuid_ns_dns() |
不断为用户界面指定 DNS 命名空间。 |
uuid_ns_url() |
不断为 UUID 指定 URL 命名空间。 |
uuid_ns_oid() |
不断为 UUID 指定 ISO 对象标识符 (OID) 命名空间。(这涉及到 ASN.1 OID,与后格雷斯QL中使用的 OID 无关。 |
uuid_ns_x500() |
不断为 UUID 指定 X.500 尊贵名称 (DN) 命名空间。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现