• PostgresSQL - 生成uuid


    一、创建函数 uuid-ossp

    CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

    uuid-ossp模块提供使用多种标准算法之一生成普遍唯一标识符 (UUID) 的功能。也有功能来产生某些特殊的UUID常数。

    此模块依赖于 OSSP UUID 库,该库可在 http://www.ossp.org/pkg/lib/uuid/找到

    二、生成随机数

    select id,uuid_generate_v4() from analysis_result
    函数描述
    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_ns_*()
    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_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) 命名空间。
  • 相关阅读:
    汽车行业大趋势——软件定义汽车
    数字孪生论文阅读笔记【1.2】
    华为推出HarmonyOS 3.0,更智能、更安全,首批更新你的机型吗?
    《第一行代码》读书笔记(3)—Activity
    zabbix部署,安装zabbix-agent监控linux和windows
    LeetCode --- 1952. Three Divisors 解题报告
    vue3 + antd 图片上传 (精简篇)cv即可
    12_MySQL数据库_CentOS7下C-C++链接MySQL
    JS逆向-新榜数据nonce和xyz参数分析
    基于SSM的旅游景点购票管理系统
  • 原文地址:https://blog.csdn.net/hutuyaoniexi/article/details/127648259