我有一个名为
但它只生成一个随机字符串并重复使用于所有行。我该如何让它为每一行生成一个随机字符串?
我知道我可以将它写成一个函数,像这样:
foo
的表格,想将其中的bar
列设置为随机字符串。我已经有了以下查询语句:update foo
set bar = select string_agg(substring('0123456789bcdfghjkmnpqrstvwxyz', round(random() * 30)::integer, 1), '')
from generate_series(1, 9);
但它只生成一个随机字符串并重复使用于所有行。我该如何让它为每一行生成一个随机字符串?
我知道我可以将它写成一个函数,像这样:
create function generate_bar() returns text language sql as $$
select string_agg(substring('0123456789bcdfghjkmnpqrstvwxyz', round(random() * 30)::integer, 1), '')
from generate_series(1, 9)
$$;
然后在更新查询中调用该函数。但我更喜欢不使用函数来完成。