random

随机数生成器

概览

扩展包名版本分类许可证语言
pg_random2.0.0FUNCPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
4790random-
相关扩展permuteseq tsm_system_rows tsm_system_time pg_idkit sequential_uuids

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY2.0.01817161514pg_random-
RPMPIGSTY2.0.01817161514pg_random_$v-
DEBPIGSTY2.0.01817161514postgresql-$v-random-
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
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
u22.x86_64
u22.aarch64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
u24.x86_64
u24.aarch64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0

构建

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

pig build pkg pg_random         # 构建 RPM / DEB 包

安装

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

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

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

pig install pg_random;          # 当前活跃 PG 版本安装
pig ext install -y pg_random -v 18  # PG 18
pig ext install -y pg_random -v 17  # PG 17
pig ext install -y pg_random -v 16  # PG 16
pig ext install -y pg_random -v 15  # PG 15
pig ext install -y pg_random -v 14  # PG 14
dnf install -y pg_random_18       # PG 18
dnf install -y pg_random_17       # PG 17
dnf install -y pg_random_16       # PG 16
dnf install -y pg_random_15       # PG 15
dnf install -y pg_random_14       # PG 14
apt install -y postgresql-18-random   # PG 18
apt install -y postgresql-17-random   # PG 17
apt install -y postgresql-16-random   # PG 16
apt install -y postgresql-15-random   # PG 15
apt install -y postgresql-14-random   # PG 14

创建扩展

CREATE EXTENSION random;

用法

random: PostgreSQL 的可重现随机数据生成器

提供为各种数据类型生成随机值的函数,通过种子控制输出的可重现性。

CREATE EXTENSION random;

函数

所有函数接受 seed(用于可重现性)和 nvalues(不同值的数量)参数。

函数说明
random_string(seed, nvalues, min_length, max_length)随机 ASCII 字符串
random_bytea(seed, nvalues, min_length, max_length)随机 bytea
random_int(seed, nvalues, min_value, max_value)随机 32 位整数
random_bigint(seed, nvalues, min_value, max_value)随机 64 位整数
random_real(seed, nvalues, min_value, max_value)随机 32 位浮点数
random_double_precision(seed, nvalues, min_value, max_value)随机 64 位浮点数
random_inet(seed, nvalues)随机 INET 地址(/32 掩码)
random_cnet(seed, nvalues)随机 CIDR,掩码为 8/16/24/32
random_cnet2(seed, nvalues)随机 CIDR,每个掩码长度均等分配
random_macaddr(seed, nvalues)随机 6 字节 MAC 地址
random_macaddr8(seed, nvalues)随机 8 字节 MAC 地址

示例

-- 生成可重现的随机整数
SELECT random_int(42, 100, 1, 1000) FROM generate_series(1, 10);

-- 长度为 5-10 的随机字符串
SELECT random_string(42, 1000, 5, 10) FROM generate_series(1, 5);

-- 随机 IP 地址
SELECT random_inet(42, 256) FROM generate_series(1, 5);

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