我尝试翻译以下 oracle sql,它将 1000 行具有增量值的行插入到表中:
insert into tableName (col1, col2, col3)
select 'AN' || (1000000 + ROWNUM), 'EXT' || (9000000 + ROWNUM), ROWNUM
from dual
Connect By ROWNUM <= 1000 ;
对于 Postgres 支持,我知道我可以用 ROW_NUMBER() OVER () 替换 ROWNUM,但我真的很头疼翻译 connect by 语句。我已阅读有关 CTE 的信息,但我不知道如何将其与插入语句一起使用。
有谁知道如何为 postgresql 编写此语句?谢谢。
最佳答案
您可以生成一个系列并使用它:
insert into tableName (col1, col2, col3)
select 'AN' || (1000000 + g.n), 'EXT' || (9000000 + g.n), g.n
from generate_series(1, 1000) g(n);
关于SQL:通过 Postgres 语句翻译递归连接时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50061777/