我有2个数据库
{[{ yield }]}
现在每个数据库都有表格Database 1,
Database 2
和Table 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都可以是主人的?如果在任何表中进行了任何更新,其他表应该相应更新吗?
答案 0 :(得分:0)
如果您的问题中没有“管理员/超级用户”的要求,您可以在数据库上使用mysql的复制功能。
如果希望在Table1中插入数据后立即将数据同步到Table2,则可以在表上使用触发器。在该触发器中,您可以检查哪个用户(如果该表中有一列指定哪个用户插入了数据)提交的数据。如果用户是管理员,则配置触发器以复制数据,如果用户是普通用户,则不执行任何操作。
接下来,对于正常用户输入数据,您可以在每一行上保留一个计数器,如果它是一个新的“普通”用户数据,则增加1。同样在同一个触发器中,您还可以检查计数器已经是多少。假设你达到10,然后将所有行复制到另一个表并重置计数器+从刚重复的行中删除旧的计数器值。