MySQL数据库合并两个数据库

时间:2013-01-28 11:25:37

标签: mysql database merge

我不久前设置了两个Wordpress博客,两者显然都有不同的数据库。我最近通过更改表前缀将这些数据库合并为一个,因此这两个“实体”具有相同数量的表和相同的名称(因为它们来自Wordpress安装)但具有不同的前缀,即:

Blog1_tabledata1
Blog1_tabledata2
Blog1_tabledata3
Blog1_tabledata4
Blog2_tabledata1
Blog2_tabledata2
Blog2_tabledata3
Blog2_tabledata4

我现在意识到我需要合并这两个数据库(它们都使用相同的表),以便它们可以在同一个Wordpress实例中使用(稍后用标记等分隔)。

这样做最简单的方法是什么?

(请注意我从MySQL的角度来问这个问题 - 这不是Wordpress的问题!)

1 个答案:

答案 0 :(得分:0)

如果你绝对不是在寻找wordpress解决方案,那就意味着你没有关注所有领域。通过这个,我的意思是你没有看到数据意味着什么。这可能是个问题。但尽管如此:

  1. 找出外键。如果表是MyIsam而不是InnoDB,它们将是隐含的。找出哪些ID指向哪个字段。
  2. 从一个DB中选择并插入另一个DB。这意味着您将一个表的行添加到目标数据库的等效项中。自动增加行将没有问题。但是对于外键(显式和隐式)字段,这就是麻烦的开始。
  3. 如果您插入,例如用户,则该用户会获得一个新ID - >您必须在旧数据库中找到等效的userid,以便可以插入具有正确ID的外键。这是棘手的,没有使这个wordpress-问题没有我们可以给你的帮助:只是弄清楚他们应该是什么行:)。它是数据库//特定于域。 (我的意思是你不能只是通过查看字段来解决这个问题,你必须知道他们的意思)
  4. 如果数据库是正确的,这应该可行,但我不确定你是否遇到重复问题(所有应该继续使用ID,并且你在步骤3中使用唯一且已连接的ID修复了该问题。但是如果您的域名不希望两个帐户,两个页面或两个whatevers(标签?)具有相同的名称,你仍然有问题。但同样,这是特定于域的逻辑,你特别要求不去那里。