天天看點

PostgreSQL 10.1 手冊_部分 II. SQL 語言_第 8 章 資料類型_8.12. UUID類型

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中文社群,原文連結: