我正在试图将老的MySQL数据库中的一些数据简单迁移到新的MySQL数据库。我正在迁移的数据来自论坛,因此有两个表:
如您所见,
我如何解决这个问题,将旧数据集中的线程/帖子插入到新数据集中,而不会弄乱
threads
和posts
。直到遇到一些棘手的自增外键关系之前,我的工作一切都很顺利。
数据库架构(只选择重要部分进行简化):threads (id, title, user_id, created_at, updated_at)
posts (id, thread_id, user_id, body, created_at, updated_at)
如您所见,
thread_id
是对应于帖子所属主题的 id
的外键。问题在于:新数据库中已经存在了线程和帖子,并且主键是自动递增的。很容易看出问题所在:两个数据集中的线程和帖子 ID 不会匹配/会相互冲突!如果我只填充帖子表,它们现在将对应于错误的线程等。我如何解决这个问题,将旧数据集中的线程/帖子插入到新数据集中,而不会弄乱
id
和相关性?我考虑的方法有:- 将旧线程/帖子 ID 加上一个大数,使其不会与新 ID 冲突
- 放弃并离开,认为这是不可能的
id
=1的线程,但它们是不同的,并且有不同的帖子。此外,由于已删除了一些线程,因此存在缺失的数字,因此,如果我只是简单地将它们放入并允许自动递增工作,它们仍然无法匹配,我认为?我可能错了,这让我感到头痛。 - wnajar