千家信息网

PostgreSQL DBA(99) - Develop(generate random string)

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,为了验证TOAST的相关功能,通过lpad、rpad等方式由于重复率太高看不出效果,因此需要生成随机字符串来填充数据。生成随机字符串的样例函数CREATE OR REPLACE FUNCTION sf
千家信息网最后更新 2026年11月02日PostgreSQL DBA(99) - Develop(generate random string)

为了验证TOAST的相关功能,通过lpad、rpad等方式由于重复率太高看不出效果,因此需要生成随机字符串来填充数据。

生成随机字符串的样例函数

CREATE OR REPLACE FUNCTION sf_generate_randomstring(length int4)RETURNS textAS $$declare   chars text[] := '{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}';  ret text := '';  i integer := 0;  lenofarray int := array_length(chars, 1);begin  if length < 0 then    raise exception '输入参数不合法,请重新输入!';  end if;  for i in 1..length loop    ret := ret || chars[1+random()*(lenofarray-1)];  end loop;  return ret;end;$$ LANGUAGE 'plpgsql';

该函数会随机生成由a-zA-Z0-9字符组成的字符串,长度由输入参数length确定,当然也可以在数组chars中添加其他字符,如中文字符等。
效果如下:

[local]:5432 pg12@testdb=# select sf_generate_randomstring(100);                                       sf_generate_randomstring                             -------------------------------------------------------------------------------------------- hmski6FmSCcRPcfmSkC3aaX7Ay3QlmTz0497pitHNjLcU8KdKVtO7ysmoqRnwM2Dc9VuPnOxGfUgTX6lIdplRciYETic4GrdRqD1(1 row)Time: 2.022 ms[local]:5432 pg12@testdb=# select length(sf_generate_randomstring(40000)); length --------  40000(1 row)Time: 174.529 ms[local]:5432 pg12@testdb=#

参考资料
PostgreSQL 如何快速构建 海量 逼真 测试数据

字符 字符串 生成 输入 函数 参数 效果 数据 逼真 功能 参考资料 数组 方式 海量 资料 长度 中文 参考 测试 验证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 互联网科技巨头监管 互联网属科技 互联网巨头科技公司 喔噻互联网科技 互联网科技英文 杭州互联网科技公司 无线互联网科技 互联网科技大会 四川狮子座互联网科技 互联网教育科技公司vipkid 乌苏新华互联网科技做什么的 特约风豹互联网科技为什么扣费 云南省自由互联网科技有限公司 郑州欣桑互联网科技有限公司 互联网时代高科技布局 科技互联网专业工作会议发言稿 河南商务圈互联网科技有限公司 恒生科技互联网指数十大成分股 高科技和互联网的现代国家 哈尔滨大商圈互联网科技有限公司 互联网科技官网 金融科技 互联网金融 互联网科技大会案例 海南科技产业互联网平台 广州慧亚互联网科技怎么样 互联网金融科技公司干啥的 亳州好赞互联网科技有限公司 优雇互联网科技有限公司 互联网科技创新方面的资料
0