【发布时间】:2014-03-20 20:33:42
【问题描述】:
在 android 应用程序中使用相同的数据库文件时,我遇到了非常不同的情况 和网络应用程序。希望有人知道这个问题。
我有一个 Web 应用程序,它有一个包含大量数据的数据库。之后,我正在导出 文件以 .sqlite 格式发送到我的 PC 和 PC 到 android 设备。此时,假设数据库中一张表的最后一个主键id是25。
现在,android 应用程序将使用该数据库文件进行操作。在同一张表中会有更多的数据 被插入。再说10个。现在最后一个主键 id 将是 35(25+10)。
同时,如果我从网络应用程序向数据库中插入更多数据,比如说 3 更多的。那么,web app 的数据库中最后一个主键 id 将是 28(25+3)。
现在,我正在从 android 设备中提取数据库文件并导入到网络应用程序以保留 记录 为了未来。网络中的数据库文件大部分数据与新的相同 从 android 设备导入数据库,因为它之前已导出到 android 应用程序。
现在我想合并这两个数据库文件以创建一个数据库文件并在 Web 应用程序中显示记录。为此,我想做的是;
- 过滤来自两个数据库的数据,不要保留相同的记录。
- 设法替换android应用数据库的主键ID,后跟最后一个 Web 应用程序数据库的主键 ID。 Like 28+10 = 38 现在新修改的数据库文件有38条记录。
请有人给我一些技术想法,因为我很难用谷歌搜索。如果不清楚,我很抱歉。如果不清楚,请随时询问。
【问题讨论】:
-
您可以检查记录是否存在然后替换其他插入。
-
@wqrahd 在合并两个数据库之间的数据时更改主键 ID 怎么样。
-
它将替换为该原始 id 。而且sqlite中还有一种方法,如果不存在则插入,否则离开它。我猜它的名字就像 insertonconflict
-
@wqrahd 你能否解释清楚一点**它将被那个原始 id 替换**。我有点迷茫
-
如果一行有 id 3 并且当再次记录来自 sql server 时,它将被相同的记录 id 3 替换。所以它不会有任何区别。