このトピックでは、sequential-uuids拡張機能の使用方法について説明します。 ApsaraDB RDS for PostgreSQLは、この拡張機能を提供して、よりシーケンシャルなパターンでUUIDを生成します。
前提条件
RDSインスタンスは、次のいずれかのデータベースエンジンバージョンを実行します。
RDSインスタンスはPostgreSQL 10以降を実行します。
RDSインスタンスのマイナーエンジンバージョンが20220228以降です。 RDSインスタンスのマイナーエンジンバージョンを更新する方法の詳細については、「マイナーエンジンバージョンの更新」をご参照ください。
RDSインスタンスへの接続には、特権アカウントが使用されます。 ApsaraDB RDSコンソールの [アカウント] ページで、使用するアカウントのタイプを確認できます。 アカウントが標準アカウントの場合、特権アカウントを作成し、その特権アカウントを使用してRDSインスタンスに接続する必要があります。 詳細については、「アカウントの作成」をご参照ください。
拡張機能の有効化または無効化
次のステートメントを実行して、sequential-uuids拡張を有効にします。
CREATE EXTENSION sequential_uuids;
次のステートメントを実行して、sequential-uuids拡張機能を無効にします。
DROP EXTENSION sequential_uuids;
例
この拡張機能は、シーケンスまたはタイムスタンプを使用してシーケンシャルUUIDを生成する2つの機能を提供します。
説明
拡張機能と関連パラメーターの使用方法の詳細については、「シーケンシャルUUIDジェネレータ」をご参照ください。
uuid_sequence_nextval関数
構文:
uuid_sequence_nextval(sequence regclass, block_size int default 65536, block_count int default 65536)
例:
CREATE SEQUENCE s; SELECT uuid_sequence_nextval('s'::regclass, 256, 256);
サンプル結果:
uuid_sequence_nextval -------------------------------------- 00cf26f7-ef7a-4746-8871-08b9c475713e (1 row)
uuid_time_nextval関数
構文:
uuid_time_nextval(interval_length int default 60, interval_count int default 65536) RETURNS uuid
例:
SELECT uuid_time_nextval(1, 256);
サンプル結果:
uuid_time_nextval -------------------------------------- 179f542c-978c-454c-9dee-5f4ba75288e1 (1 row)