首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SQLIte数据迁移到MySQL并管理/更新外键?

问将SQLIte数据迁移到MySQL并管理/更新外键?
EN

Stack Overflow用户
提问于 2015-11-04 14:22:49
回答 2查看 221关注 0票数 0

我正在开发一个Android应用程序,其中数据存储在SQLite数据库中。

我已经与网络中的MySQL数据库进行了同步,将存储在设备中的SQLite中的数据发送到那里。

问题是,我不知道如何维护表之间的关系,因为主键将用AUTO_INCREMENT更新,外键保持不变,从而破坏表之间的关系。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-04 15:47:21

如果这是完全迁移,则不要在迁移期间使用自动增量--使用普通列创建表。使用ALTER在导入后更改模型。

对于增量同步,我看到的最简单的方法是在每个MySQL表中添加名为sqlite_id并填充原始id的列。然后,您可以使用update (带有联接)更新引用。

备选方案包括用于存储数据的临时表和用于配对的辅助表。对于更大的数据模型来说,这是很乏味的。

如果可能的话,我倾向于使用的方法是避免在这种情况下自动递增。我通常有一个带有四列的辅助表: t_import(tablename,operationid,sqlite_id,mysqlid)。程序如下:

  1. 将主键导入t_import。如果需要的话,可以使用实例化来分离并行导入。
  2. 为数据表生成新的键并将它们存储到t_import表中。这可以与第一步相结合。
  3. 导入实际数据并使用t_import设置新的主键和恢复关系。

这应该适用于我所知道的大多数情况。

票数 0
EN

Stack Overflow用户

发布于 2015-11-04 22:44:05

谢谢或者帮助,你给了我一些想法。

我将尝试将一个id2字段添加到将存储与主键(_id)相同的值的表中。

当我将信息从SQLite发送到MySQL并且主键递增时,我将使id2字段具有主键的原始值,以便将其与其他表的外键进行比较并进行更新。

让我们看看它是否有效。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33524292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档