繁体   English   中英

如何在MySql中合并两个数据库

[英]How to merge two databases in MySql

我需要合并两个MySql数据库。

  • DBtwo是DBone的副本。
  • 我将数据添加到DBone中的table_x,并且将数据添加到DBtwo中的table_y。
  • 我需要将数据添加到DBOne中,同时合并在DBTwo中进行的所有其他编辑(例如,删除的条目)。
  • 因此,模式是相同的,而每个数据库都有来自不同表的不同数据。

谢谢大家的帮助。

编辑:我忘记了。 我在table_x中添加了列,这些列是table_y的外键。 因此,DBone插入了一些条目,但没有添加到DBtwo中的table_x的列。 :/

您可以使用触发器。 请参阅MySQL文档以获取有关触发器,函数和过程的实现。

合并之前是否有原始数据库的副本? 如果没有,您的要求是不可能的。 这是问题所在:

原始数据库具有以下记录:

{a, b, c}

在table_x中,您添加了广告,所以现在您有了:

{a, b, c, d}

在表y中,删除ab,因此具有:

{a, c}

现在,您尝试合并这两个数据集:

{a, b, c, d}
{a, c}

不参考原始文档,您如何知道b和d是否应位于新集中。 如果它们不是原始文件,并且您是在分支之后添加的,则应将其包括在内。 如果它们是原始文件,并且您自合并以来已在table_y中删除了它们,则不应将它们包括在内。

假设您确实具有访问权限,则需要执行以下操作:

insert into table_y
select *
from table_x x
where x.id not in (select id from table_x_original)

然后将table_y重命名为table_x(如果您希望table_x成为新的数据源)。 如果生成了您的ID并且可能存在冲突,则需要将*替换为ID列以外的所有其他列的列表,以生成新的顺序ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM