有一种简洁的方法可以在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个数字(下一个)。

您可以将其包装到函数中,但是由于查询有多短,我不确定它是否真的明智。

09-17 09:44