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

标签 ios sqlite

场景如下(我使用的是 iOS):

  1. 我已经从互联网上下载了 sqlite3 db 并将其保存在磁盘上。
  2. 我已经使用 sqlite3_open 打开了数据库以进行读取
  3. 一段时间后,我在应用程序运行时从互联网更新了 db 文件,并且再也没有调用过 sqlite3_open

我可以访问什么数据库?它总是来自磁盘的新版本还是使用某种内存缓存版本?

谢谢。

最佳答案

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

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

关于iOS sqlite3 - 如果文件在 sqlite3_open 之后发生变化怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308556/

相关文章:

iphone - 添加观察者:名称

ios - TableView 单元格中的 MVVM

ios - Xcode 的 iPhone 连接错误

ios - 一键隐藏多个按钮 Objective C

sql - 合并两个都有联结表的 SQLite 数据库

c# - 64 位 SQLite.dll 和任何 CPU

python - sqlite 用 python 中的日期更新列

objective-c - iTunesArtwork - 应用程序包中需要吗?

android - SQLiteReadOnlyDatabaseException : attempt to write a readonly database (code 1032)

sqlite - SQLite数据库中Grails域类中无法解析的日期