小编Esa*_*ier的帖子

pqxx返回刚刚插入的行的id

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

我的问题是复杂性和资源平衡:

我需要执行insert to database(并且有可选的pqxx :: result)和id,因为表id是基于nextval(table_seq_id)

是否可以获得插入行的id?有一个解决方法可以向db询问有关currentvalue的顺序,只需使用currentvalue + 1(或+ n)插入查询,但这需要执行"insert and ask"链.

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

c++ database postgresql optimization libpqxx

5
推荐指数
1
解决办法
888
查看次数

如何省略C++中不同参数的复制函数定义

我有很多代码以某种方式执行完全相同的操作(继承的代码),并且我希望在重新编写代码时压缩代码而不会丢失功能.例如,让我们看看以下函数:

fnc(largetype & a,  largetype & b)  { f(A); f(B); };
fnc(largetype && a, largetype & b)  { f(A); f(B); };
fnc(largetype & a,  largetype && b) { f(A); f(B); };
fnc(largetype && a, largetype && b) { f(A); f(B); };
Run Code Online (Sandbox Code Playgroud)

所有这些都做了完全相同的事情,但参数可以是rvalues或lvalues而不会破坏函数逻辑.我希望允许用户传递任何适合问题的内容,但我也不想一块一块地复制粘贴所有代码.我可以这样做:

fnc(largetype & a,  largetype & b)  { f(A); f(B); };
fnc(largetype && a, largetype & b)  { fnc(a,b) };
fnc(largetype & a,  largetype && b) { fnc(a,b) };
fnc(largetype && a, largetype && b) { fnc(a,b) };
Run Code Online (Sandbox Code Playgroud)

这在技术上是正确的,尤其是内联,但对我来说似乎不对.有没有其他更好的方法来实现这样的效果? …

c++ parameter-passing c++14

3
推荐指数
1
解决办法
90
查看次数