将多个 SQLite 数据库与 FMDB 进行比较
Posted
技术标签:
【中文标题】将多个 SQLite 数据库与 FMDB 进行比较【英文标题】:Comparing multiple SQLite databases with FMDB 【发布时间】:2017-03-07 11:42:35 【问题描述】:我正在编写一个测验风格的应用程序,它通过 FMDB 从 SQLite 数据库填充。我已将数据库从应用程序包复制到应用程序文档目录,以便我具有读/写权限,因此也可以将用户数据(例如分数)保存到数据库中。
但是,我需要一种方法来比较应用程序文档中的数据库与应用程序包中的数据库,以便可以将包数据库的更新(例如新问题)复制到文档数据库。简单地将整个捆绑数据库复制到应用程序文档不是一种选择,因为这会覆盖以前保存的用户数据。我想到了一些差异陈述,例如
SELECT questionID FROM Bundle.Master EXCEPT SELECT questionID FROM AppDocs.Master
查看发生了什么变化并从那里开始,但我不确定如何同时对多个数据库使用executeQuery
命令。
感谢任何想法/替代方法。
【问题讨论】:
【参考方案1】:您可以使用“版本”发送捆绑的数据库,并将此版本与文档数据库中的其他表一起复制。在应用启动时,将捆绑数据库的版本与文档数据库的版本进行比较,并在必要时执行新的导入。
您将有机会完全按照需要执行任何数据库迁移和(重新)导入。
【讨论】:
谢谢,我想这就是我要做的。我现在有一个临时解决方法,它分别查询每个数据库,将结果保存到集合中,然后对它们执行并集、相交函数等。以上是关于将多个 SQLite 数据库与 FMDB 进行比较的主要内容,如果未能解决你的问题,请参考以下文章
将 FMDB + SQLCipher 与 Rubymotion 一起使用?