sqlite 批量插入, 重复插入(更新)
[FMDBManager inDatabase:^(FMDatabase *db) { [db shouldCacheStatements]; //开始启动事务 [db beginTransaction]; BOOL isRollBack = NO; @try { for (NSDictionary *dic in resultDic[@"events"]) { //replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。 NSString *sql = [NSMutableString stringWithFormat:@"replace into events values('%@','%@','%@','%@','0','0')",dic[@"id"],dic[@"title"],dic[@"src"],dic[@"type"]]; BOOL a = [db executeUpdate:sql]; if (!a) { NSLog(@"插入失败1"); } } } @catch (NSException *exception) { isRollBack = YES; [db rollback]; } @finally { if (!isRollBack) { [db commit]; } } }]; }