iOS sqlite3 - 如果文件在sqlite3_open之后发生了变化,该怎么办?

时间:2015-05-18 16:35:54

标签: ios sqlite

这是场景(我正在使用iOS):

  1. 我从互联网上下载了sqlite3 db并将其保存在磁盘上。
  2. 我已使用sqlite3_open
  3. 打开数据库进行阅读
  4. 一段时间后,我在应用程序运行时从互联网更新了db文件,再也没有再次调用sqlite3_open
  5. 我可以访问哪些数据库?它总是来自磁盘的新版本还是使用某种内存缓存版本?

    感谢。

1 个答案:

答案 0 :(得分:1)

不支持在打开数据库文件时访问它,并且可能导致数据损坏。

但是,您可以使用SQLite机制替换文件:使用sqlite3命令行shell打开新文件,然后执行.backup existingfile。这将替换所有数据,同时使用适当的锁定和事务。