mysql - 将两个数据库合并为一个数据库

标签 mysql sql database bulkinsert

我有两个来自不同 mysql 服务器的相同数据库的转储。我需要通过调整主键和外键自动将这两个转储合并到一个数据库中。

例如考虑两个 sql 转储,例如 mysqldump1 和 mysqldump2,其中包含两个表 country_table 和 child_table。下面是两个转储的数据

转储:mysqldump1.dmp
表 1:country_table

+----+-------------------+
| id |    Country        |
+----+-------------------|
|  1 |  India            |
|  2 |  China            |
|  3 |  USA              |
|  4 |  England          |
|  5 |  Iran             |
+----+-------------------+

表 2:person_table

+----+-------------------+-------------+
| id |    Name           | Country (fk)|
+----+-------------------|-------------|
|  1 |  Tom              |     1       |
|  2 |  Anish            |     2       |
|  3 |  James            |     2       |
|  4 |  Akhil            |     5       |
|  5 |  Jobi             |     4       |
+----+-------------------+-------------+

转储:mysqldump2.dmp
表 1:country_table

+----+-------------------+
| id |    Country        |
+----+-------------------|
|  1 |  Dubai            |
|  2 |  Australia        |
+----+-------------------+

表 2:person_table

+----+-------------------+-------------+
| id |    Name           | Country (fk)|
+----+-------------------|-------------|
|  1 |  Binu             |     1       |
|  2 |  Justin           |     2       |
|  3 |  Mark             |     2       |
+----+-------------------+-------------+

结果数据库包含两个转储的条目组合,如下所示。请注意,包含上述两个数据库的组合的结果数据库调整了主键和外键
成绩数据库
国家/地区表

+----+-------------------+
| id |    Country        |
+----+-------------------|
|  1 |  India            |
|  2 |  China            |
|  3 |  USA              |
|  4 |  England          |
|  5 |  Iran             |
|  6 |  Dubai            |
|  7 |  Australia        |
+----+-------------------+

person_table

+----+-------------------+-------------+
| id |    Name           | Country (fk)|
+----+-------------------|-------------|
|  1 |  Tom              |     1       |
|  2 |  Anish            |     2       |
|  3 |  James            |     2       |
|  4 |  Akhil            |     5       |
|  5 |  Jobi             |     4       |
|  6 |  Binu             |     6       |
|  7 |  Justin           |     7       |
|  8 |  Mark             |     7       |
+----+-------------------+-------------+

能否请您给我一个将两个数据库合并为单个数据库的想法,如上所示。 (我使用的是mysql数据库)

最佳答案

将每个表导出为 CSV,然后将它们导入到合并的数据库中。一旦您在同一个数据库中拥有所有表,您就可以编写 SQL 来追加数据。

参见 MYSQL - Concatenate two tables有关连接部分的更多详细信息。

诀窍是先将它们放在同一个数据库中。

关于mysql - 将两个数据库合并为一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20171956/

相关文章:

sql - 增加所有行的 FK 列值 SQL

ruby-on-rails - Rails : migrating production database, 需要为每个现有用户创建新数据

mysql - 如何使用 mySQL replace() 替换多条记录中的字符串?

php - 如何并排显示同一张表中的数据

mysql - 计算MySQL中记录之间的相似度

mysql - 在 SQL 中连接表,其中新列名称基于另一列的连接表值

php - 服务器中的图像未出现在 WordPress 媒体库中

sql - 如何比较 SQL Server 中的日期时间与仅日期

sql - 在函数 xp_dirtree 上传递变量时出错

Java getter 方法返回 null 而不是字符串