RDS PostgreSQL支持Sequential UUID generators插件,该插件提供顺序模式的UUID生成。

前提条件

  • RDS PostgreSQL实例版本满足以下要求:
    • 实例大版本为PostgreSQL 10或以上。
    • 内核小版本为20220228以上。查看和升级内核小版本,请参见升级内核小版本
  • 您的账号类型必须为高权限账号。您可以在RDS控制台目标实例的账号管理中查看您的账号权限类型。如果您的账号类型为普通账号,您需要创建高权限账号,创建详情请参见创建账号

插件开启和关闭

  • 开启sequential-uuids
    CREATE EXTENSION sequential_uuids;
  • 关闭sequential-uuids
    DROP EXTENSION sequential_uuids;

使用示例

该扩展提供了两个函数,使用序列或时间戳生成顺序UUID。
说明 该插件的更多使用方法及参数说明,请参见Sequential UUID generators官方文档
  • 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)