专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构

批量插入数据

事务是由一组DML操作组成的单元,用于保证数据的一致性和完整性;事务中的DML操作要么一起成功,要么一起放弃

  • 在准备做大规模数据操作前,首先开启一个事务,保存操作前的数据库的状态
  • 开始数据操作
  • 如果数据操作成功,提交事务,让数据库更新到数据操作后的状态
  • 如果数据操作失败,回滚事务,让数据库还原到操作前的状态

  • ViewController.m 中添加 testManyInsert 方法

      /**
       *  测试批量插入数据
       */
      - (void)testManyInsert {
          NSLog(@"开始插入数据");
          CFTimeInterval startTime = CACurrentMediaTime();
    
          // 开启事务
          [[SQLiteManager sharedManager] execSQL:@"BEGIN TRANSACTION"];
    
          NSString *sql = @"INSERT INTO T_Person (name, age, height) VALUES ('张三', 20, 1.70);";
          for (int i = 0; i < 10000; i++) {
              [[SQLiteManager sharedManager] execSQL:sql];
    
              if (i == 1000) {
                  // 事务失败,回滚
                  NSLog(@"事务失败");
                  [[SQLiteManager sharedManager] execSQL:@"ROLLBACK"];
                  break;
              }
          }
    
          // 提交事务
          [[SQLiteManager sharedManager] execSQL:@"COMMIT TRANSACTION"];
    
          CFTimeInterval endTime = CACurrentMediaTime();
          NSLog(@"消耗时间: %f", endTime - startTime);
      }
    
  • 事务: 用于保证数据的一致性和完整性,事务中的DML要么一起成功,要么一起失败

results matching ""

    No results matching ""