如何创建一个适合PostgreSQL中的会话ID的随机字符串?
发布时间:2020-12-13 16:53:16 所属栏目:百科 来源:网络整理
导读:我想要一个随机字符串用于使用PostgreSQL进行会话验证。我知道我可以得到一个随机数与SELECT random(),所以我尝试SELECT md5(random()),但是不工作。我如何做到这一点? 我建议这个简单的解决方案: 这是一个非常简单的函数,返回给定长度的随机字符串: C
我想要一个随机字符串用于使用PostgreSQL进行会话验证。我知道我可以得到一个随机数与SELECT random(),所以我尝试SELECT md5(random()),但是不工作。我如何做到这一点?
我建议这个简单的解决方案:
这是一个非常简单的函数,返回给定长度的随机字符串: Create or replace function random_string(length integer) returns text as $$ 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}'; result text := ''; i integer := 0; begin if length < 0 then raise exception 'Given length cannot be less than 0'; end if; for i in 1..length loop result := result || chars[1+random()*(array_length(chars,1)-1)]; end loop; return result; end; $$ language plpgsql; 用法: select random_string(15); 示例输出: select random_string(15) from generate_series(1,15); random_string ----------------- 5emZKMYUB9C2vT6 3i4JfnKraWduR0J R5xEfIZEllNynJR tMAxfql0iMWMIxM aPSYd7pDLcyibl2 3fPDd54P5llb84Z VeywDb53oQfn9GZ BJGaXtfaIkN4NV8 w1mvxzX33NTiBby knI1Opt4QDonHCJ P9KC5IBcLE0owBQ vvEEwc4qfV4VJLg ckpwwuG8YbMYQJi rFf6TchXTO3XsLs axdQvaLBitm6SDP (15 rows) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |