在 PostgreSQL 中生成随机字符串

新手上路,请多包涵

我正在使用这个 SQL 查询在 PostgreSQL 中生成随机值

chr(ascii('B') + (random() * 25)::integer)

如何使用相同的查询生成 15 个字符的随机字符串?

原文由 Peter Penzov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

对我来说最方便的方法是创建一个 function

 CREATE OR REPLACE FUNCTION random_string(int) RETURNS TEXT as $$
SELECT substr(md5(random()::text), 0, $1+1);
$$ language sql;

该函数名为 random_string

它需要 string length 作为参数。

然后我在任何我想要的地方使用这个 function

只看结果:
 select random_string(6);

做一个插入:
 insert into users values(nextval('users_sequence'), random_string(6), random_string(6));

使用随机数据生成多行:
 do $$
begin
for i in 1..100 loop
insert into users values(nextval('users_sequence'), random_string(6), random_string(6));
end loop;
end;
$$;

等等。

原文由 luke 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进