如何使用 FMDB 正确获取 lastRowId?

How can I get lastRowId correctly with FMDB?

如何使用 FMDB 获取 lastRowId? 方法 [db lastRowId] 对我来说总是 returns 0。

最后我发现,可以在连接打开时检索 lastRowId

[_database open];
[_database executeUpdate:<some query>];

int64_t lastInsertRowId = [_database lastInsertRowId];
[_database close];

return lastInsertRowId;
-(NSInteger) executeGetLastInsertID:(NSString*)sql
{
    __block NSInteger lastID = -1;

    [self.dbQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {

        if([db executeUpdate:sql]) {
            lastID = (NSInteger)[db lastInsertRowId];
        }

   }];

    return lastID;
}