场景如下(我使用的是 iOS):
- 我已经从互联网上下载了 sqlite3 db 并将其保存在磁盘上。
- 我已经使用
sqlite3_open
打开了数据库以进行读取 - 一段时间后,我在应用程序运行时从互联网更新了 db 文件,并且再也没有调用过
sqlite3_open
我可以访问什么数据库?它总是来自磁盘的新版本还是使用某种内存缓存版本?
谢谢。
最佳答案
不支持在打开时访问数据库文件,这可能会导致数据损坏。
但是,您可以使用 SQLite 机制来替换文件:使用 sqlite3
命令行 shell 打开新文件,然后执行 .backup existingfile
。这将替换所有数据,同时使用适当的锁定和事务。
关于iOS sqlite3 - 如果文件在 sqlite3_open 之后发生变化怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308556/