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_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 常數

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) 命名空間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM