执行 INSERT 到数据库获取插入行的 id 后如何获取?

Posted

技术标签:

【中文标题】执行 INSERT 到数据库获取插入行的 id 后如何获取?【英文标题】:How to get after executing INSERT into database fetch id of inserted row? 【发布时间】:2014-04-25 14:17:57 【问题描述】:

我正在使用 c++11 和 pqxx 访问 postgresql 数据库,我需要插入行的 id 和标志是否成功。 我试图在网上找到例子,但没有成功。

work txn(*conn);
txn.prepared("insert ")(person_name).exec();
txn.commit();

【问题讨论】:

insert ... returning? 【参考方案1】:
work txn(*conn);
pqxx::result r = txn.prepared("insert into t (a,b,c) values (1,2,$1) returning id")(person_name).exec();
txn.commit();
int id = r[0][0].as<int>();

【讨论】:

以上是关于执行 INSERT 到数据库获取插入行的 id 后如何获取?的主要内容,如果未能解决你的问题,请参考以下文章

在 PDO(使用 MySQL)中执行 INSERT 后获取最后插入的行?

获取 sqldelight 中插入行的行 ID

获取最后插入行的主键 ID 以运行多个插入操作 [重复]

使用SQLServer2005插入一条数据时返回当前插入数据的ID

如何在INSERT之前获取mysql行的ID

在sql中执行insert语句之前或之后获取记录的插入id