在使用之前要增加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) 命名空間。 |