将两个数据库合并到一个数据库中

时间:2013-11-24 06:52:13

标签: 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       |
+----+-------------------+-------------+

结果数据库包含两个转储的条目组合,如下所示。请注意结果数据库包含上述两个数据库的组合,用于调整主键和外键
结果数据库
country_table

+----+-------------------+
| 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数据库)

1 个答案:

答案 0 :(得分:-1)

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

有关连接部分的详细信息,请参阅MYSQL - Concatenate two tables

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