すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:uuid-ossp

最終更新日:Sep 27, 2024

このトピックでは、AnalyticDB for PostgreSQLでuuid-ossp拡張機能を使用する方法について説明します。

概要

UUIDデータ型は、汎用一意識別子 (UUID) を格納するために使用される。 UUIDは、分散システムにおけるシーケンスよりも一意である。

UUIDは32の16進数で構成されています。 標準フォーマットは、8文字のグループとそれに続く4桁の3つのグループと12桁のグループです。 グループはハイフン (-) で区切られています。 例:

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

大文字または中かっこ ({}) を使用して、UUIDを標準形式で囲んだり、一部またはすべてのハイフン (-) を省略したり、4桁のグループの後にハイフンを追加したりできます。 例:

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

利用可能なバージョンのAnalyticDB for PostgreSQLでは、UUIDデータ型のフィールドを配布キーとして使用できません。

uuid-osspのビルド方法については、「uuid-osspのビルド」をご参照ください。

インストール

AnalyticDB for PostgreSQLインスタンスでuuid-ossp拡張機能を使用する前に、インスタンスの [拡張機能] ページにuuid-ossp拡張機能をインストールする必要があります。 詳細については、「拡張機能のインストール、更新、およびアンインストール」をご参照ください。

関数

  • UUID生成のための関数

    関数

    説明

    uuid_generate_v1()

    この関数は、バージョン1のUUIDを生成します。 これには、コンピュータのMACアドレスとタイムスタンプが含まれます。

    説明

    このタイプのUUIDは、識別子を作成したコンピューターのIDと、識別子が作成された時刻を表示します。 このタイプのUUIDは、セキュリティに敏感なアプリケーションには適していません。

    uuid_generate_v1mc()

    この関数は、バージョン1のUUIDを生成します。 この関数はuuid_generate_v1() 関数とは異なり、uuid_generate_v1mc() 関数はランダムマルチキャストMACアドレスを使用してUUIDを生成し、uuid_generate_v1() 関数はコンピュータの実際のMACアドレスを使用してUUIDを生成します。

    uuid_generate_v3 (名前空間uuid, name text)

    この関数は、指定した名前を使用して、指定した名前空間にバージョン3のUUIDを生成します。

    • 名前空間は、uuid_ns_*() 関数の1つによって返される定数です。 次の表に、関数を示します。

    • nameは、指定された名前空間の識別子です。

    例:

    SELECT uuid_generate_v3(uuid_ns_url(), 'example.com');

    nameパラメーターは、MD5ハッシュアルゴリズムを使用してハッシュされます。 生成されたUUIDから平文を導出することはできない。 この関数を使用して生成されるUUIDは、ランダムアルゴリズムを必要とせず、システムを実行するために必要な環境変数から独立しています。 これにより、UUIDを再生できます。

    uuid_generate_v4()

    この関数は、乱数に基づいてバージョン4のUUIDを生成します。

    uuid_generate_v5 (名前空間uuid, name text)

    この関数は、バージョン3のUUIDが生成されるのと同様の方法で、バージョン5のUUIDを生成する。 バージョン5のUUIDを生成するために使用されるSHA-1ハッシュアルゴリズムは、MD5ハッシュアルゴリズムよりも安全です。 したがって、バージョン5のUUIDが推奨されます。

  • UUID定数を返す関数

    関数

    説明

    uuid_nil()

    この関数は、実際のUUIDとは見なされないnil UUID定数を返します。

    uuid_ns_dns()

    この関数は、UUIDのドメインネームシステム (DNS) 名前空間を指定する定数を返します。

    uuid_ns_url()

    この関数は、UUIDのURL名前空間を指定する定数を返します。

    uuid_ns_oid()

    この関数は、UUIDのISOオブジェクト識別子 (OID) 名前空間を指定する定数を返します。

    説明

    ISO OIDは、ASN.1 (Abstract Syntax Notation One) 標準を使用して定義され、PostgreSQLで使用されるOIDとは異なります。

    uuid_ns_x500()

    この関数は、UUIDのX.500識別名 (DN) 名前空間を指定する定数を返します。

  • 次のステートメントを実行して、バージョン1のUUIDを生成します。

    SELECT uuid_generate_v1();

    サンプル結果:

     uuid_generate_v1
    --------------------------------------
     c7f83ba4-bd93-11e9-8674-40a8f01ec4e8
    (1 row)
  • 次のステートメントを実行して、バージョン3のUUIDを生成します。

    SELECT uuid_generate_v3(uuid_ns_url(), 'example.com');

    サンプル結果:

    uuid_generate_v3
    --------------------------------------
    a0473a67-27a1-3c05-a2d1-5c134639347f
    (1行) 
  • 次のステートメントを実行して、バージョン4のUUIDを生成します。

    SELECT uuid_generate_v4();

    サンプル結果:

    uuid_generate_v4
    --------------------------------------
     d7a8d47e-58e3-4bd9-9340-8553ac03d144
    (1行) 
  • 次のステートメントを実行して、バージョン5のUUIDを生成します。

    SELECT uuid_generate_v5(uuid_ns_url(), 'example.com ');

    サンプル結果:

    uuid_generate_v3
    --------------------------------------
    a0473a67-27a1-3c05-a2d1-5c134639347f
    (1 row)

関連ドキュメント