我已经搜索了 Poco 的文档,但找不到一种方法来检索 INSERT INTO Table 操作的最后插入的 id。
Statement::execute 文档说它返回受影响的记录数(对于批量插入可能大于 1)。
如果有什么区别的话,我目前正在使用 SQLite,但想要一个跨不同数据库引擎工作的通用解决方案。
对于 SQLite,执行一条语句,SELECT last_insert_rowid()
我知道这不是一个通用的答案。
但是,这就是他们在 Ti.Database 模块中的做法 - 这是一个使用 poco 的 Titanium 模块。他们选择last_insert_rowid(),然后将其设置为语句的属性。
Poco没有这样的设施。我们选择根本不提供它,让用户直接与后端打交道,而不是向后抽象出不同后端之间不一致的东西。请参阅此讨论。
template <typename IDType>
IDType ActiveRecord<IDType>::lastInsertID(Poco::Data::Session& session)