gpt4 book ai didi

mysql - 将 SQLite 数据迁移到 MySQL 并管理/更新外键?

转载 作者:行者123 更新时间:2023-11-29 21:52:14 25 4
gpt4 key购买 nike

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

我已与网络中的 MySQL 数据库同步,将设备中 SQLite 中存储的数据发送到该位置。

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

最佳答案

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

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

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

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

  1. 将主键导入到 t_import 中。如果需要,可以使用 operationid 来分隔并行导入。

  2. 为数据表生成新键并将其存储到 t_import 表中。这可以与第一步结合起来。

  3. 导入实际数据并使用t_import设置新的主键并恢复关系。

这应该适用于我所知道的大多数场景。

关于mysql - 将 SQLite 数据迁移到 MySQL 并管理/更新外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com