iOS FMDB 事务的理解

来源:互联网 发布:python datatime 编辑:程序博客网 时间:2024/06/05 18:34
[queue inTransaction:^(FMDatabase *db, BOOL *rollback) {    [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:1]];    [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:2]];    [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:3]];    if (whoopsSomethingWrongHappened) {        *rollback = YES;        return;    }    // etc…    [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:4]];}];

最简单的例子来说明事务

“A账户向B账号汇钱”来说明事务

1、从A账号中把余额读出来。2、对A账号做减法操作。3、把结果写回A账号中。4、从B账号中把余额读出来。5、对B账号做加法操作。6、把结果写回B账号中。

为了数据的一致性,这6件事,要么都成功做完,要么都不成功。而且这个操作的过程中。对A、B找好的其他访问必须锁死,所谓锁死就是要排除其他的读写操作,不然会有脏数据问题,这就是事务。

参考:http://www.jianshu.com/p/eb150b4f7ce0
0 0
原创粉丝点击