8

我正在使用 c++ 4.8(可用 4.9)和 pqxx 驱动程序版本。4.0.1。postgresdb 是最新的稳定版。

我的问题全在于复杂性和资源平衡:

我需要对数据库执行插入(并且可以选择 pqxx::result),并且该表中的 id 是基于 nextval(table_seq_id)

结果是否可以获得插入行的ID?有一个解决方法可以按顺序询问 db 关于 currentvalue 并只需插入带有 currentvalue+1(或 +n)的查询,但这需要执行“插入并询问”链。

Db 应该能够存储超过 6K 的大请求 /per.sec。所以我想尽可能少地询问id。批量插入不是一种选择。

4

1 回答 1

8

如此所述,您可以RETURNING向查询添加子句INSERT,以从插入的行返回值。他们给出了一个类似于您想要的示例,返回一个 ID:

INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
   RETURNING did;
于 2014-10-23T16:19:01.987 回答