【问题标题】:Merge two database into a single database将两个数据库合并为一个数据库
【发布时间】:2013-12-08 22:23:03
【问题描述】:

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

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

Dump: mysqldump1.dmp
Table1: country_table

+----+-------------------+ |编号 |国家 | +----+------------------| | 1 |印度 | | 2 |中国 | | 3 |美国 | | 4 |英格兰 | | 5 |伊朗 | +----+-------------------+

表 2:person_table

+----+-------------------+-------------+ |编号 |姓名 |国家 (fk)| +----+-------|-------------| | 1 |汤姆 | 1 | | 2 |阿尼什 | 2 | | 3 |詹姆斯 | 2 | | 4 |阿基尔 | 5 | | 5 |乔比 | 4 | +----+-------------------+-------------+

转储:mysqldump2.dmp
表 1:国家/地区表

+----+-------------------+ |编号 |国家 | +----+------------------| | 1 |迪拜 | | 2 |澳大利亚 | +----+-------------------+

表 2:person_table

+----+-------------------+-------------+ |编号 |姓名 |国家 (fk)| +----+-------|-------------| | 1 |比努 | 1 | | 2 |贾斯汀 | 2 | | 3 |马克 | 2 | +----+-------------------+-------------+

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

+----+-------------------+ |编号 |国家 | +----+------------------| | 1 |印度 | | 2 |中国 | | 3 |美国 | | 4 |英格兰 | | 5 |伊朗 | | 6 |迪拜 | | 7 |澳大利亚 | +----+-------------------+

person_table

+----+-------------------+-------------+ |编号 |姓名 |国家 (fk)| +----+-------|-------------| | 1 |汤姆 | 1 | | 2 |阿尼什 | 2 | | 3 |詹姆斯 | 2 | | 4 |阿基尔 | 5 | | 5 |乔比 | 4 | | 6 |比努 | 6 | | 7 |贾斯汀 | 7 | | 8 |马克 | 7 | +----+-------------------+-------------+

您能否建议我将两个数据库合并为一个数据库,如下所示。 (我用的是mysql数据库)

【问题讨论】:

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

标签: mysql sql database bulkinsert


【解决方案1】:

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

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

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

【讨论】:

  • 是不是也调整了外键?
  • 你没有提供足够的信息让我帮忙。如果您要添加记录,那么是的,它应该保持外键约束,除非数据库具有重复的主键
猜你喜欢
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-15
相关资源
最近更新 更多