我正在开发一个Android应用程序,其中数据存储在SQLite数据库中。
我已经与网络中的MySQL数据库进行了同步,将存储在设备中的SQLite中的数据发送到那里。
问题是,我不知道如何维护表之间的关系,因为主键将用AUTO_INCREMENT更新,外键保持不变,从而破坏表之间的关系。
发布于 2015-11-04 15:47:21
如果这是完全迁移,则不要在迁移期间使用自动增量--使用普通列创建表。使用ALTER在导入后更改模型。
对于增量同步,我看到的最简单的方法是在每个MySQL表中添加名为sqlite_id并填充原始id的列。然后,您可以使用update (带有联接)更新引用。
备选方案包括用于存储数据的临时表和用于配对的辅助表。对于更大的数据模型来说,这是很乏味的。
如果可能的话,我倾向于使用的方法是避免在这种情况下自动递增。我通常有一个带有四列的辅助表: t_import(tablename,operationid,sqlite_id,mysqlid)。程序如下:
这应该适用于我所知道的大多数情况。
发布于 2015-11-04 22:44:05
谢谢或者帮助,你给了我一些想法。
我将尝试将一个id2字段添加到将存储与主键(_id)相同的值的表中。
当我将信息从SQLite发送到MySQL并且主键递增时,我将使id2字段具有主键的原始值,以便将其与其他表的外键进行比较并进行更新。
让我们看看它是否有效。
谢谢
https://stackoverflow.com/questions/33524292
复制相似问题