我有两个来自不同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数据库)
答案 0 :(得分:-1)
将每个表导出为CSV,然后将它们导入合并的数据库。一旦在同一个数据库中拥有所有表,就可以编写SQL来附加数据。
有关连接部分的详细信息,请参阅MYSQL - Concatenate two tables。
诀窍是首先将它们放在同一个数据库中。