如何合并两个具有相同结构但数据不同的数据库

时间:2016-11-24 09:28:14

标签: mysql database phpmyadmin

我正在使用phpmyadmin,我必须合并两个具有相同结构但数据不同的数据库。

db具有表(外键)之间的关系。 两个db中的数据可能具有相同的id,因此它们的外键也是如此。

我想知道是否可以合并两个db保存所有数据,因此,如果一行已经“存在”,请插入新ID并更新其外键。

非常感谢

2 个答案:

答案 0 :(得分:0)

不幸的是,没有简单的方法。如果您将TableA作为TableB的外键,则需要

1)将源表A中的数据插入目标tableA 2)创建一个(temp)表来存储源tableA id和目标tableA id之间的映射 3)在从tableB插入数据时使用此映射表将tableA ID转换为目标db中的新数据

......等等。如果你有一个深层次的表格,它会变得非常毛茸茸,但希望你能得到这个想法。在开始之前进行备份。

答案 1 :(得分:0)

您可能想要考虑的另一个想法是使用游标:

  1. 假设表A是您要保留的表,而表B是您要删除的表。
  2. 为表B声明游标并选择所有记录。
  3. 循环从光标中选择的每个记录并检查。 情况1:如果表A上存在ID,则将记录插入表A并使用相同的详细信息。 情况2:如果表B上存在ID,请插入记录并修改ID和外键。
  4. 检查完所有记录后,删除表B.
  5. 抱歉,我现在可以提出一个想法。