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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM