android中sqlite文件的一致性

时间:2014-06-09 17:14:28

标签: android sqlite

我在Android中有一个sqlite3数据库。有一个可以使用的线程 数据库。从另一个线程,我想将sql文件复制到其他位置。我不知道数据库目前是否已关闭,或者可能在同一时刻正在进行交易。我可以假设文件的副本始终是有效的sqlite数据库吗?

由于sqlite中的事务是原子的,这看起来很合理,但我想确定。

使用DatabaseHelper打开数据库,并SQLiteDatabase.insert不时插入数据。有时数据库已关闭然后重新打开。

1 个答案:

答案 0 :(得分:2)

数据库事务是原子的,但复制文件本身并不是数据库事务。

要确保没有其他SQLiteDatabase对象可以访问数据库文件,请先执行BEGIN EXCLUSIVE。 只要您不更改此事务中的数据库,数据库文件就处于一致状态。