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: