我有两个来自不同 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/