pg_uuidv7

UUIDv7 支持

概览

扩展包名版本分类许可证语言
pg_uuidv71.7.0FUNCMPL-2.0C
ID扩展名BinLibLoadCreateTrustReloc模式
4540pg_uuidv7-
相关扩展pg_idkit pgx_ulid uuid-ossp sequential_uuids pg_hashids permuteseq

版本

类型仓库版本PG 大版本包名依赖
EXTMIXED1.7.01817161514pg_uuidv7-
RPMPGDG1.7.01817161514pg_uuidv7_$v-
DEBPIGSTY1.7.01817161514postgresql-$v-pg-uuidv7-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
d13.x86_64
d13.aarch64
u22.x86_64
u22.aarch64
u24.x86_64
u24.aarch64

构建

您可以使用 pig build 命令构建 pg_uuidv7 扩展的 DEB 包:

pig build pkg pg_uuidv7         # 构建 DEB 包

安装

您可以直接安装 pg_uuidv7 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install pg_uuidv7;          # 当前活跃 PG 版本安装
pig ext install -y pg_uuidv7 -v 18  # PG 18
pig ext install -y pg_uuidv7 -v 17  # PG 17
pig ext install -y pg_uuidv7 -v 16  # PG 16
pig ext install -y pg_uuidv7 -v 15  # PG 15
pig ext install -y pg_uuidv7 -v 14  # PG 14
dnf install -y pg_uuidv7_18       # PG 18
dnf install -y pg_uuidv7_17       # PG 17
dnf install -y pg_uuidv7_16       # PG 16
dnf install -y pg_uuidv7_15       # PG 15
dnf install -y pg_uuidv7_14       # PG 14
apt install -y postgresql-18-pg-uuidv7   # PG 18
apt install -y postgresql-17-pg-uuidv7   # PG 17
apt install -y postgresql-16-pg-uuidv7   # PG 16
apt install -y postgresql-15-pg-uuidv7   # PG 15
apt install -y postgresql-14-pg-uuidv7   # PG 14

创建扩展

CREATE EXTENSION pg_uuidv7;

用法

pg_uuidv7: 在 PostgreSQL 中创建有效的版本 7 UUID

CREATE EXTENSION pg_uuidv7;

函数

函数描述
uuid_generate_v7()生成一个新的 UUIDv7
uuid_v7_to_timestamptz(uuid)从 UUIDv7 中提取时间戳
uuid_timestamptz_to_v7(timestamptz [, bool])将时间戳转换为 UUIDv7(第二个参数设为 true 则将随机位清零)

示例

-- 生成一个 UUIDv7
SELECT uuid_generate_v7();
-- 018570bb-4a7d-7c7e-8df4-6d47afd8c8fc

-- 从 UUIDv7 中提取时间戳
SELECT uuid_v7_to_timestamptz('018570bb-4a7d-7c7e-8df4-6d47afd8c8fc');
-- 2023-01-02 04:26:40.637+00

-- 将时间戳转换为 UUIDv7
SELECT uuid_timestamptz_to_v7('2023-01-02 04:26:40.637+00');
-- 018570bb-4a7d-7630-a5c4-89b795024c5d

-- 用于日期范围查询时,将随机位清零
SELECT uuid_timestamptz_to_v7('2023-01-02 04:26:40.637+00', true);
-- 018570bb-4a7d-7000-8000-000000000000

-- 用作主键
CREATE TABLE events (
  id uuid NOT NULL DEFAULT uuid_generate_v7() PRIMARY KEY,
  data text
);

最后修改 2026-03-14: update extension metadata (953cbd0)