如何使用 Poco 以通用方式获取最后插入的 id?

问题描述 投票:0回答:3

我已经搜索了 Poco 的文档,但找不到一种方法来检索 INSERT INTO Table 操作的最后插入的 id。

Statement::execute 文档说它返回受影响的记录数(对于批量插入可能大于 1)。

如果有什么区别的话,我目前正在使用 SQLite,但想要一个跨不同数据库引擎工作的通用解决方案。

sql sqlite poco-libraries
3个回答
1
投票

对于 SQLite,执行一条语句,SELECT last_insert_rowid()

我知道这不是一个通用的答案。

但是,这就是他们在 Ti.Database 模块中的做法 - 这是一个使用 poco 的 Titanium 模块。他们选择last_insert_rowid(),然后将其设置为语句的属性。


1
投票

Poco没有这样的设施。我们选择根本不提供它,让用户直接与后端打交道,而不是向后抽象出不同后端之间不一致的东西。请参阅此讨论


0
投票
template <typename IDType>
IDType ActiveRecord<IDType>::lastInsertID(Poco::Data::Session& session)
© www.soinside.com 2019 - 2024. All rights reserved.