同步。\维护2个数据库表(MYSQL)中的更新数据

时间:2015-09-13 12:43:49

标签: mysql database

我有2个数据库

{[{ yield }]}

现在每个数据库都有表格Database 1, Database 2Table 1(IN DATABASE 1)

表1基本上是表2的副本(仅用于备份)。

如果表1已更新,我如何同步表2?

我正在使用Table 2(IN DATABASE 2),在后端编程中,我正在使用MYSQL,Storage Engine:InnoDB

此外,我可以使用PHP脚本每15分钟检查一次更新,但由于每个表都有php,所以需要花费太多时间。

那么,如何实现管理员/超级用户更新表1之类的内容,我应该立即在表2中更新该更新。

此外,有没有一种方法可以使用双向更新,即两者都可以成为大师?

而不是表1作为唯一的主人,表1和表2都可以是主人的?如果在任何表中进行了任何更新,其他表应该相应更新吗?

1 个答案:

答案 0 :(得分:0)

如果您的问题中没有“管理员/超级用户”的要求,您可以在数据库上使用mysql的复制功能。

如果希望在Table1中插入数据后立即将数据同步到Table2,则可以在表上使用触发器。在该触发器中,您可以检查哪个用户(如果该表中有一列指定哪个用户插入了数据)提交的数据。如果用户是管理员,则配置触发器以复制数据,如果用户是普通用户,则不执行任何操作。

接下来,对于正常用户输入数据,您可以在每一行上保留一个计数器,如果它是一个新的“普通”用户数据,则增加1。同样在同一个触发器中,您还可以检查计数器已经是多少。假设你达到10,然后将所有行复制到另一个表并重置计数器+从刚重复的行中删除旧的计数器值。