PostgreSQL10.1手冊_部分II.SQL語言_第8章資料型別_8.12.UUID型別

李博bluemind發表於2018-10-02

8.12. UUID型別

資料型別uuid儲存由RFC 4122、ISO/IEC 9834-8:2005以及相關標準定義的通用唯一識別符號(UUID)(某些系統將這種資料型別引用為全域性唯一識別符號GUID)。這種識別符號是一個128位的量,它由一個精心選擇的演算法產生,該演算法能保證在已知空間中任何其他使用相同演算法的人能夠產生同一個識別符號的可能性非常非常小。因此,對於分散式系統,這些識別符號相比序列生成器而言提供了一種很好的唯一性保障,序列生成器只能在一個資料庫中保證唯一。

一個UUID被寫成一個小寫十六進位制位的序列,該序列被連字元分隔成多個組:首先是一個8位組,接下來是三個4位組,最後是一個12位組。總共的32位(十六進位制位)表示了128個二進位制位。一個標準形式的UUID類似於:

a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

PostgreSQL也接受另一種輸入形式: 使用大寫位、標準格式被花括號包圍、忽略某些或者全部連字元、在任意4位組後面增加一個連字元。例如:

A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}

輸出總是採用標準形式。

PostgreSQL為UUID提供了儲存和比較函式,但是核心資料庫不包含任何用於產生UUID的函式,因為沒有一個單一演算法能夠很好地適應每一個應用。uuid-ossp模組提供了實現一些標準演算法的函式。 pgcrypto模組也為隨機 UUID 提供了一個生成函式。 此外,UUID可以由客戶端應用產生,或者由通過伺服器端函式呼叫的其他庫生成。

本文轉自PostgreSQL中文社群,原文連結:8.12. UUID型別


相關文章