当APP进入后台或其他情况时,需删除本地数据库中的数据,此时想简单的得到符合查询条件的记录条数,比如数据库中的元素个数大于某个值时,就删除前面的数据(也就是最早的数据),达到数据库中最大缓存元素的个数,使用FMDB,2条sqlite语句搞定
/// 清除本地数据库中的数据
- (void)clearLivesData {
[self.dbQueue inDatabase:^(FMDatabase *db) {
[db open];
// 先查询表中行数的总个数
NSUInteger count = [db intForQuery:@"select count(*) from t_lives"];
// NSLog(@"%ld",count);
// 当缓存的数据大于50条时就删除前面的20数据
if (count > 50) {
NSString *delegateSql = @"DELETE FROM t_lives WHERE id < 20 ";
if ([db executeUpdate:delegateSql withArgumentsInArray:nil]) {
[self xy_showMessage:@"已删除本地缓存中最早的20条数据"];
} else {
[self xy_showMessage:@"删除本地数据失败"];
}
}
[db close];
}];
}
网友评论