【问题标题】:MySQL database merge of two databasesMySQL数据库合并两个数据库
【发布时间】:2013-01-28 11:25:36
【问题描述】:

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

Blog1_tabledata1
博客1_tabledata2
博客1_tabledata3
博客1_tabledata4
Blog2_tabledata1
Blog2_tabledata2
Blog2_tabledata3
Blog2_tabledata4

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

最简单的方法是什么?

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

【问题讨论】:

    标签: mysql database merge


    【解决方案1】:

    如果您绝对不是在寻找 wordpress 解决方案,那意味着您没有查看所有域。我的意思是,您没有查看数据的含义意味着。这可能是个问题。但是:

    1. 找出外键。如果表是 MyIsam 而不是 InnoDB,它们将是隐式的。找出哪个 ID 指向哪个字段。
    2. 从一个数据库中选择并插入到另一个数据库中。这意味着您将一个表的行添加到目标数据库的等效项中。自动增量行会很好。但是对于外键(显式和隐式)字段,麻烦就开始了。
    3. 如果您插入一个用户,比如一个用户,该用户将获得一个新 ID -> 您必须在旧数据库中找到用户 ID 的等价物,这样您才能插入具有正确 ID 的外键。这很棘手,如果不将其作为 wordpress 问题,我们就无法为您提供更多帮助:只需弄清楚它们应该是哪些行 :)。它是数据库//域特定的。 (我的意思是你不能仅仅通过查看字段来弄清楚,你必须知道它们的一些含义)
    4. 如果数据库是正确的,这应该可以工作,但我不确定您是否会遇到重复问题(所有都应该在 ID 上进行,并且您在步骤 3 中使用唯一且连接的 ID 修复了该问题。但如果您的域不希望两个帐户、两个页面或两个任何东西(标签?)具有相同的名称,您仍然有问题。但同样,这是特定于域的逻辑,您特别要求不要去那里。

    【讨论】:

    • 你会建议什么作为更简单的 Wordpress 选项呢?我想要的只是让这两个数据库从一个数据库中工作,以便我可以在一个 Wordpress 实例中使用它们。 (我一定要指出,我不是从 Wordpress 的角度提出这个问题,因为我之前为此被标记过)
    • 问题是你已经查看了这些具体的东西,比如 id 去哪里。我知道询问有关 wordpress 的具体问题可能会被视为离题或本地化,您可能可以自己查看数据库。这只是意味着您必须接受我的一般答案并自己应用。您应该走得很远,但特定表的特定问题可能最终会出现第二个问题。无论如何,关键是没有针对抽象案例的“一击奇迹”查询:您需要查看内容。就我个人而言,我会用谷歌搜索“wordpress 合并”脚本。
    猜你喜欢
    • 2011-11-18
    • 2017-05-05
    • 2016-07-30
    • 2013-12-08
    • 2015-08-22
    • 2014-11-14
    • 2019-04-07
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多