在Android上的SQLite事务期间读写

时间:2014-08-29 15:26:25

标签: android sqlite transactions

对于我的应用程序,我正在开发一种方法来将本地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 :(得分:1)

不同的交易彼此隔离,但交易不会与自身隔离。 换句话说,交易总是看到自己的变化。