2014-08-29 45 views
0

对于我的应用程序,我正在开发一种方法来同步本地SQLite数据库与外部数据库。我想要这样做的算法依赖于在事务处理期间读取和写入数据库的能力。这将要求我正在使用的数据库将始终反映数据库的最新状态,即使在提交之前也是如此。例如,假设我有以下表格:在Android上的SQLite事务中读取和写入

id | value 
-------------- 
1 | a 
2 | b 
3 | c 
4 | d 

我开始一个事务并删除第二行。我的数据库现在应该是这样的:

id | value 
-------------- 
1 | a 
3 | c 
4 | d 

然后我再次查询数据库以获取每一行。它应该是这样的:

id | value 
-------------- 
1 | a 
3 | c 
4 | d 

但它会看起来像,还是会像原来的表,因为该交易还没有提交?我并不完全清楚SQLite在事务期间的行为,而且在文档中我没有看到任何关于此的具体内容。我希望我的问题清楚。有任何问题,请询问。

回答

1

不同的交易是相互隔离的,但交易不是与自己隔离的。换句话说,一个事务总是会看到它自己的变化。

+0

完美。谢谢。 – 2014-08-29 15:30:07