如何合并两个相同结构的MySQL数据库

Posted

技术标签:

【中文标题】如何合并两个相同结构的MySQL数据库【英文标题】:How to merge two MySQL databases of same structure 【发布时间】:2014-03-30 20:27:39 【问题描述】:

这是我的情况。我的当前数据库(我们称之为 current_db)是最新的,但由于最近的崩溃,它的数据不完整。部分数据已被删除,此次删除时间为2年前至昨天。

我有一个从 2013 年 11 月到 2013 年 11 月的数据库(我们称之为 backup_db)的备份。由于 current_db 包含 2013 年 11 月到 2014 年 2 月之间的一些数据,我不想要只是废弃它,并从备份中工作。所以我想将 current_db 导入到 backup_db 中,忽略重复的数据。

我已经搜索了执行此操作的方法,但找不到任何相关的方法。我遇到过一些 SELECT 查询,但它们都很简单。我的数据库有 20 个表,我并没有真正看到自己构建一个巨大的查询来导入所有这些。有没有其他办法?

谢谢

【问题讨论】:

【参考方案1】:
    使用phpMyAdmin(不使用就安装) 转到当前数据库 点击导入,导入其他数据库

可能的问题:

phpmyadmin 中的最大文件上传大小可能是 2MB。解决这个问题 增加最大文件上传大小php.ini

假设您有一个模式 s1 和一个模式 s2。

要将 s1 中表的所有行插入 s2 中的表中,同时覆盖现有行,您可以使用:

REPLACE INTO s2.table_name
SELECT * FROM s1.table_name;

如果您不想触碰现有线路:

INSERT INTO s2.table_name
SELECT * FROM s1.table_name
ON DUPLICATE KEY IGNORE;

如果您有任何问题,请在此处发表评论。

【讨论】:

以上是关于如何合并两个相同结构的MySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中如何合并结构和记录数都不同的两个表?

如何连续同步/合并两个 MySQL 数据库到第三个

如何将两个同样的MYSQL数据库表合并。表一表二的表结构是一样只是内容一个表多了些并且有部分字段修改过

如何把两个完全相同的mysql数据库合并到另一个数据库中

如何合并两个 MySQL 表?

如何合并两个 MySQL 结果?