同步MYSQL中同一数据库中两个表的记录

时间:2012-04-28 06:31:12

标签: mysql sync

我有两个表,其中包含相同的字段:

表A:fname,lname,地址,年龄,电子邮件,手机,网站,博客 表B:fname,lname,地址,年龄,电子邮件

这两个表都由我网站上的不同模块使用。我希望以这样的方式同步两个表的前五个字段:无论何时添加新行或在表A中修改现有行,表B都会自动更新,反之亦然。

例如。

  1. 用户在表A中创建了新记录。现在还应使用此新信息更新表B.反之亦然,如果用户在表B中创建新记录,则表A也应使用此新信息进行更新。

  2. 用户修改了表A中的记录。现在,还应使用此修改后的信息更新表B.反之亦然,如果用户修改表B中的新记录,表A也应使用此修改后的信息进行更新。

  3. 我怎样才能做到这一点。我想过使用触发器,但它不会创建一个无限循环导致服务器错误!

2 个答案:

答案 0 :(得分:0)

这5个中的任何一个领域是否保证是唯一的?您可以在触发器中添加条件,以便在将记录插入表中之前检查该字段是否存在。

您可能也想重新考虑设计。在两个地方存储重复记录似乎有点吓人。您将不得不拥有更新,插入和删除的触发器。

答案 1 :(得分:0)

如果你需要更新一个表以防其他表得到更新,而不是创建一个表(作为其他表的一部分),创建一个View,它也像一个表但是虚拟(不是真实的)。
但既然你已经要求双方更新。

我相信你应该回过头来解决这个问题....并告诉我们为什么你需要根据另一张表更新两张表, 因为您只是将重复数据保存在两个不需要的地方。

因此,尝试考虑是否可以在不创建两个表的情况下完成,或者为部分列要求创建一个表和一个视图。

这不是你问题的答案,但我试图以优化的方式解决你的问题,这对每个人的健康都有好处.... 希望你能理解我想说的话。 :)