我看到了一篇关于使用 generate_series 创建表数据的简洁文章。作者在解释代码方面做得很好,但是有些事情我仍然不明白。别名后的Xcomp3syl(x)和z2(x)是分配派生表的列名X?还有这个语法叫什么?我无法在没有关键字的情况下使用谷歌搜索它的文档
SELECT(
SELECT concat_ws(' ',name_first, name_last) as generated
FROM (
SELECT string_agg(x,'')
FROM (
select start_arr[ 1 + ( (random() * 25)::int) % 16 ]
FROM
(
select '{CO,GE,FOR,SO,CO,GIM,SE,CO,GE,CA,FRA,GEC,GE,GA,FRO,GIP}'::text[] as start_arr
) syllarr,
-- need 3 syllabes, and force generator interpretation with the '*0' (else 3 same syllabes)
generate_series(1, 3 + (generator*0))
) AS comp3syl(x)
) AS comp_name_1st(name_first),
(
SELECT x[ 1 + ( (random() * 25)::int) % 14 ]
FROM (
select '{Ltd,& Co,SARL,SA,Gmbh,United,Brothers,& Sons,International,Ext,Worldwide,Global,2000,3000}'::text[]
) AS z2(x)
) AS comp_name_last(name_last)
)
FROM generate_series(1,10000) as generator
Run Code Online (Sandbox Code Playgroud)
对这里感兴趣的任何人都是文章的链接:https : //regilero.github.io/postgresql/english/2017/06/26/postgresql_advanced_generate_series/