如何离线和在线在android sqlite数据库和mysql数据库之间同步数据?

时间:2019-03-26 09:37:26

标签: android mysql sqlite synchronization

我想从多个用户离线/在线同步android SQLite数据库和MySQL数据库之间的数据?

我有两个桌子

  1. 有关用户的详细信息
  2. 查询

我尝试过先将数据保存到SQLite,然后将其发送到服务器,但存在数据冲突。如何管理与SQLite数据库匹配的特定表的唯一ID? 假设

  1. 我从用户A插入了一个查询。该查询保存在SQLite DB中,并在联机后发送到服务器。因此主键ID为1,与MySQL和SQLite相同。
  2. 现在,用户B也提交了他的查询。它也保存在SQLite DB中并发送到服务器。因此,这里的主键ID也为1。现在,由于它与服务器中已存储的ID相同,因此将产生错误,因为它与主键相反。

因此,现在我该如何避免数据冲突。记住,我正在为离线和在线创建一个应用程序。当互联网不可用时,它将被保存到SQLite,并且在联机后将被保存到MySQL服务器。

任何建议或任何方式都是可取的。

2 个答案:

答案 0 :(得分:1)

在Mysql表中再创建一个具有自动增量的列,并将其作为主键。

答案 1 :(得分:0)

使用时间戳(包括毫秒)和用户登录ID作为密钥,这样即使用户都在相同的确切时间发布,它也始终是唯一的。 EG主要ID为201910190859123451,当时间和日期为2019-10-19 08:59:12:345且用户ID为1时,您需要将主要ID设置为一个大整数。