有没有一种简洁的方法可以在一次查询中多次为PostgreSQL序列 Select 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个数字(nextvals).

但是如果我不确定这个函数有多短.

Postgresql相关问答推荐

横向联接返回的行数太多

PostgreSQL:函数结果表内冲突(...)上的";中的字段名称

在Axum 0.5中,如何在一个请求处理程序中同时使用数据库和路径解析?

如何重新格式化已获取的 psql 查询输出?

是否可以在 postgres jsonb 列中的列表上创建索引

如何计算每月的出版物数量?

Postgresql如何从jsonB列的数组中的多个json中 Select 一个值

连接 Supbase Postgresql 数据库时,Stepzen Graphiql 资源管理器中的主机名解析错误

我可以在 Ruby on Rails 上编写 PostgreSQL 函数吗?

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

如何防止用户看到其他数据库和其他数据库中的表?

Postgres 外键on update和on delete选项如何工作?

如何启动 Postgres 服务器?

在 postgres 中创建超级用户

PG::ConnectionBad FATAL:role "Myname" does not exist

GRANT SELECT 特权使用一个语句对所有序列

如何从我的 postgresql 查询中获取最小值、中值和最大值?

如何更改 PostgreSQL 中的 REFERENCES?

PostgreSQL - 如何在不同时区呈现日期?

PostgreSQL - pg_config -bash:pg_config:command not found