PGSQL 生成随机字符

1,530 阅读1分钟
create or replace function random_string(integer)
returns text as
$body$
    select upper(array_to_string(array(select substring('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' FROM (ceil(random()*62))::int FOR 1) FROM generate_series(1, $1)), ''));
$body$
language sql volatile;

sample:

select random_string(32);

生成32位随机数然后大写。

结果
QWMWQHSVYVF71ZDPZHT2RLP47NGBQYYQ