2013-11-24 135 views
1

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

例如,考虑两个sql转储说mysqldump1和mysqldump2包含两个表country_table和child_table。这里遵循两个转储的数据

转储:将两个数据库合并到一个数据库中

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

表2 country_table:mysqldump1.dmp
表1 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  | 
+----+-------------------+-------------+ 

你能否建议我将两个数据库合并成一个dat的想法看起来像上面的基础。 (我正在使用mysql数据库)

+0

数据库或表? – FaddishWorm

+0

我需要合并两个数据库。但数据库只包含两个表 –

回答

-1

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

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

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

+1

它是否也在调整外键? –

+0

你还没有提供足够的信息来帮助我。如果你正在添加记录,那么是的,它应该保持外键约束,除非数据库有重复的初选 – FaddishWorm

相关问题