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