我有以下内容。两个mysql表。我想将已从表a更改的信息复制到b。
例如,如果表1中的第1行第2列已更改,我只想更新表b中的该列。表b与a不同但具有相同的列,也存在于a中。我的另一个解决方案是清除表b并将其替换为表a中的内容,问题可能是脚本执行时间更长,因为有超过10000条记录。任何建议哪种方法效果最好都将受到高度赞赏
答案 0 :(得分:2)
使用触发器更新一个更新另一个表的表。 可以在本教程中看到示例
http://www.brainbell.com/tutorials/MySQL/Creating_Triggers.htm
并在这篇文章中
http://forums.mysql.com/read.php?99,282455,282559#msg-282559
答案 1 :(得分:0)
如果你在同一个数据库的2个不同的表中获得了相同的数据,那么你的数据库就没有规范化了 - 你只是通过找到不良结构的变通方法来加剧你的困难。
如果这些是2个独立的数据库 - 比如群集上的分布式节点(虽然这意味着双向同步)或者您有一个近乎在线的数据库副本用于报告目的,那么您仍然应该正确地规范化您的数据,将表'a'中不存在但在表'b'中找到的字段移动到第三个表。要解决人口/复制问题,可以:
1)使用MySQL中的内置复制功能
2)向表'a'添加一个索引时间戳字段,然后合并自某个时间以来已更新的记录T
请注意,第二种方法不会传播删除。
下进行。