2010-03-23 117 views
2

我有以下几点。两个mysql表。我想复制从表a更改为b的信息。比较2个mysql表并只更新已更改的记录

例如,如果第1行第2列在表a中发生了更改,我只想更新表b中的该列。表b与a不同,但具有同样的列,也存在于a中。另一个解决方案是清除表b并将其替换为表a中的内容,与此相关的问题可能是脚本执行时间较长,因为有超过10000条记录。任何建议哪种方法将工作最好将高度赞赏

回答

0

例如如果你在同一个数据库上的2代不同的表得到了相同的数据,那么你的数据库是没有标准化 - 你只是通过找到坏结构的解决方法来解决你的困难。

如果这些数据库是2个独立的数据库 - 说群集上的分布式节点(尽管这意味着双向同步),或者为了报告目的而有近线数据库副本,那么您仍然应该正确地标准化数据并将不在表'a'中但在表'b'中找到的字段移动到第三个表中。该解决人口/复制问题,或者:

1)在MySQL

2使用内置的复制功能)添加一个索引时间戳字段表“A”然后合并,因为一些已更新的记录时间T

请注意,第二种方法不传播删除。

C.

+0

之前试井同意这个......他还需要一个触发。 – karto 2012-04-15 21:19:28