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

批量插入数据

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

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

  • ViewController.swift 中添加 testManyInsert 方法

    /*
      在批量插入数据的时候,开启事务
      使用事务是需要消耗性能的,如果不显示的开启和关闭事务.sqlite会默认为每条sql语句开启和关闭事务
    */
    func testManyInsert() {
    
      print("开始插入数据")
      let startTime = CFAbsoluteTimeGetCurrent()
    
      // 开启事务
      SQLiteManager.sharedManager.execSQL("BEGIN TRANSACTION")
    
      let sql = "INSERT INTO T_Person (name, age, height) VALUES ('张三', 20, 1.70)"
      for i in 0..<10000 {
          SQLiteManager.sharedManager.execSQL(sql)
    
          if i == 1000 {
              // 事务失败,回滚
              print("事务失败")
              SQLiteManager.sharedManager.execSQL("ROLLBACK")
              break
          }
      }
    
      // 提交事务
      SQLiteManager.sharedManager.execSQL("COMMIT TRANSACTION")
    
      let endTime = CFAbsoluteTimeGetCurrent()
      print("消耗时间: \(endTime - startTime)")
    }
    
  • 事务: 用于保证数据的一致性和完整性,事务中的DML要么一起成功,要么一起失败

results matching ""

    No results matching ""