-
何为事务(Transaction)
- 事务, 是并发控制的单位, 是用户定义的一个操作序列. 在这个序列中的所有操作, 是一个完整不可分割的整体.
- 通过事务, 可以将逻辑相关的操作绑定在一起, 保持数据的完整性
- 事务通常以:
begin transaction
作为开始, 以commit transacation
或rollback transaction
结束- commit: 表示提交事务的所有操作, 也就是将事务中所有对数据库的操作, 写入到磁盘上的数据库中, 然后正常的结束事务
- rollback: 表示回滚, 即在事务运行的过程中, 发生了某种故障, 事务不能继续进行, 系统会将事务中对数据库的所有已经完成的操作全部撤销, 回滚到事务开始之前的状态
-
事务的操作测试
如果手动操作事务, 就一定要遵循
手动开启 -> 执行任务 -> 手动提交或回滚
-
如果没有手动开启或者提交, 那么数据库的操作就会失败
// 模拟事务 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { // 0. 开启事务 [[SQLiteTool shareInstance] beginTransaction]; // 1. 模拟银行转账 // zhangsan -50 同时lisi +50 NSString *sql = @"update T_human set money = money - 50 where name = 'zhangsan'"; BOOL result = [[SQLiteTool shareInstance] excuteSQL:sql]; NSString *sql2 = @"update T_human set money = money + 50 where name = 'lisi'"; BOOL result2 = [[SQLiteTool shareInstance] excuteSQL:sql2]; NSLog(@"%i, %i", result, result2); if (result && result2) { // 提交事务 [[SQLiteTool shareInstance] commitTransaction]; } else { // 回滚事务 [[SQLiteTool shareInstance] rollBackTransaction]; } }
9. SQL语句中, 事务的使用
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...