[英]How to merge two databases in MySql
我需要合并两个MySql数据库。
谢谢大家的帮助。
编辑:我忘记了。 我在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.