取自http://forums.mysql.com/read.php?167,294960,295250的示例
sql::Statement* stmt = conn->createStatement();
sql::ResultSet* res = stmt->executeQuery("SELECT @@identity AS id");
res->next();
my_ulong retVal = res->getInt64("id");
简而言之,如果您的 ID 列不是 auto_increment 列,那么您也可以使用
SELECT @@identity AS id
编辑:
不确定第二次查询/往返是什么意思。首先,我以为您想知道一种不同的方法来获取最后插入的行的 ID,但看起来您更感兴趣的是知道是否可以保存往返行程?
如果是这样,那么我完全同意@WhozCraig;您可以在单个语句中输入两个查询,例如inser into tab value ....;select last_inserted_id()
单个调用
或者
您可以使用下面的存储过程来执行相同的操作并保存往返行程
create procedure myproc
as
begin
insert into mytab values ...;
select last_inserted_id();
end
让我知道这是否不是您想要实现的目标。