对于我的应用程序,我正在开发一种方法来将本地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在事务期间的行为,我在文档中没有看到任何具体的内容。我希望我对我的问题很清楚。有任何问题,请询问。
答案 0 :(得分:1)
不同的交易彼此隔离,但交易不会与自身隔离。 换句话说,交易总是看到自己的变化。