PostgreSQL DBA(99)——发展(生成随机字符串)

  

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

  

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

  <>之前   <代码>创建或替换函数sf_generate_randomstring (int4长度)   返回文本   美元美元   声明   字符文本[]:=' {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文本:=";   我整数:=0;   lenofarray int:=array_length(识字课,1);   开始   如果长度& lt;0然后   提高异常的输入参数不合法,请重新输入!”;   如果;   因为我在1 . .长循环   ret:=ret | |字符[1 +随机()* (lenofarray-1)];   结束循环;   返回受潮湿腐烂;   结束;   $ $   语言“plpgsql”   ;      

该函数会随机生成由a-zA-Z0-9字符组成的字符串,长度由输入参数长度确定,当然也可以在数组字符中添加其他字符,如中文字符等。   
效果如下:   <>之前   <代码>(本地):5432 pg12@testdb=#选择sf_generate_randomstring (100);   sf_generate_randomstring   --------------------------------------------------------------------------------------------   hmski6FmSCcRPcfmSkC3aaX7Ay3QlmTz0497pitHNjLcU8KdKVtO7ysmoqRnwM2Dc9VuPnOxGfUgTX6lIdplRciYETic4GrdRqD1   (1行)   时间:2.022毫秒   (本地):5432 pg12@testdb=#选择长度(sf_generate_randomstring (40000);   长度   --------   40000   (1行)   时间:174.529毫秒   (本地):5432 pg12@testdb=#      

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

PostgreSQL DBA(99)——发展(生成随机字符串)