在应用程序启动时将外部数据库与 SQLite 数据库同步

Posted

技术标签:

【中文标题】在应用程序启动时将外部数据库与 SQLite 数据库同步【英文标题】:Sync an external database with SQLIte database on application start 【发布时间】:2011-10-20 17:02:09 【问题描述】:

我有一个用于我的 android 应用程序的 SQLite 数据库,它在服务器上存储来自另一个数据库的一些数据的副本。当用户打开应用程序时,我想将本地副本同步到外部 master。用户可能访问过相关网站并插入/更新/删除数据。

如果只是插入/更新,可以使用时间戳,但由于它们可以删除数据,我不确定如何检查已删除的行。

那么,了解更改内容和更新本地副本的最佳方式是什么?

【问题讨论】:

另一个带有标志的列怎么样...新的,已删除的,没有变化... 感谢大家的所有建议!我现在有一个计划:) 【参考方案1】:

我会添加一个表来审核删除(包含已删除记录的关键字段)并在同步时传输它,并在成功同步后清除表。

【讨论】:

【参考方案2】:

嗯,我们正在开发 ios 项目,如果服务器会响应它的更新版本,它将与服务器同步它的数据库。 如果将所有这些更改复合到特定日期并压缩发送到应用程序,我们的服务器会增量存储执行的 SQL 和请求,在应用程序中,我的 Objective-C 包装器从下载的文件中执行 SQL 语句。

也许同样的方法对你也有好处。

【讨论】:

一位同事也提出了类似的方法——我想这就是我要做的方式。谢谢!

以上是关于在应用程序启动时将外部数据库与 SQLite 数据库同步的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - 线程完成后从 SQLite 获取数据

在单击按钮时将数据插入 Android Studio 中的 SQlite 数据库

与来自 Android 的外部 SQLite 数据库交互。

如何仅在创建时将值插入数据库?(SQLite Android Studio)

Android 数据存储 - 文件与 SQLite

如何使用 SQLite 文件预加载 Core Data,该文件引用使用“外部存储”保存的图像?