他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

8.12. UUID

uuidデータ型は、RFC 4122、ISO/IEC 9834-8:2005および関連する標準に従う、汎用一意識別子(UUID)を格納します。 (一部のシステムでは、このデータ型をグローバル一意識別子(GUID)と呼んでいます。) この識別子は、同一のアルゴリズムを使用しても既知の世界上の他の誰かが同一識別子が生成される可能性がほとんどないように選択されたアルゴリズムで生成された128ビット量の値です。 したがって、分散システムにおいて、これら識別子は、単一データベース内でしか一意にならないシーケンスジェネレータよりも優れた一意性保証を提供します。

UUIDは、小文字の16進数表記桁の並びをいくつかのグループでハイフンで区切って表現されます。 具体的には、8桁のグループが1つ、4桁のグループが3つ、次いで、12桁のグループが1つとなり、合計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をクライアントアプリケーションで生成することも、サーバサイドで他のライブラリを呼び出して生成することもできます。