我有两个完全不同的 MySQL 数据库,它们都有自己的用户表方案。我想(实时)同步用户表,所以当一个用户被添加到任一数据库时,另一个应该相应地更新。我的问题是,是否可以进行这种同步?如果是,那么有效的方法/方法是什么?
问问题
1401 次
2 回答
2
如果您希望在插入/更新行时在数据库中发生这种情况,那么这听起来像是TRIGGER的候选者。这将允许您编写代码,以便每当表 A 发生更改时,您可以自动对表 B 进行“镜像”更改。请注意,因为您将有两个方向的触发器,所以您确定一个告诉插入/更新来自另一个表的触发器的方式,并且您不会陷入无限循环。
于 2011-07-18T17:43:16.787 回答
1
是的,这是可能的,但由于您的架构不同,最好的方法就是手动完成;在更新其中一个数据库的代码中,只需让它适当地更新另一个数据库。这是非常必要的,因为您的模式不同;您正在有效地实现在更新时调用的手动映射器。
还有其他方法可以做到,但这是最简单的方法,而且非常有效。
编辑:好的,其他方法:有一个常规作业(cronjob 或类似),它根据自上次查询以来的更新查询一个表,并将这些更新传播到第二个表;然而,这种方法存在潜在的滞后性。或者,您可以根据每个用户表的触发器做一些事情,但我建议避免这种方法,因为它会引入一些潜在的严重执行时间增加,具体取决于触发器的实现方式。但我仍然想说最简单的方法是修改用户表更新代码以修改两个表而不是一个表。
于 2011-07-18T17:18:15.093 回答