有一种简洁的方法可以在1个查询中多次选择PostgreSQL序列的nextval吗?这将是唯一返回的值。
例如,我想做一些简短而可爱的事情:
SELECT NEXTVAL('mytable_seq', 3) AS id;
得到:
id
-----
118
119
120
(3 rows)
最佳答案
select nextval('mytable_seq') from generate_series(1,3);
generate_series是一个函数,它返回许多具有序号的行,并由其参数配置。
在上面的示例中,我们不在乎每行中的值,我们只使用generate_series作为行生成器。对于每一行,我们可以调用nextval。在这种情况下,它将返回3个数字(下一个)。
您可以将其包装到函数中,但是由于查询有多短,我不确定它是否真的明智。