如何使用FMDB正确获取lastRowId?

时间:2016-03-13 07:55:09

标签: ios sqlite fmdb

如何使用FMDB获取lastRowId? 方法[db lastRowId]总是为我返回0。

2 个答案:

答案 0 :(得分:1)

-(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;
}

答案 1 :(得分:0)

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

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

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

return lastInsertRowId;