专业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要么一起成功,要么一起失败