![](/img/trans.png)
[英]Sync two tables from two different databases with different structure MySql
[英]PHPMYADMIN | How could we sync two tables in two different MySQL databases (Within same server)?
这个怎么运作 :
因此, site1
和site2
将让用户通过移动应用程序将自己注册到数据库(对于某些用例)。 因此,用户下载移动应用程序 -> 根据用户位置,他们将进入site1
或site2
-> 用户自行注册,这就是在users
表中生成new row entries
。
我想要达到什么目标?
由于同一用户偶尔会访问两个站点, site1
或site2
应该同步所有列的users
表。 因此,基于唯一的电话号码( phone
), site1
和site2
中users
表的行应始终同步。 我们怎样才能做到这一点? 我知道触发器是一个选项,但我很感激要使用的格式的示例代码……或者任何提示都将不胜感激。 现在确定event
对这个用例有多大帮助。 有人可以帮忙吗?
使用的 PHP 框架是 Laravel。
一种可能的解决方案是使用MySQL 触发器。
以下是关于如何使用触发器将新值插入到第二个表中的简短教程: https : //www.tutorialspoint.com/mysql-trigger-to-insert-row-into-another-table
编辑:包含在上述链接的完整教程下方,以防它从原始来源中消失。
让我们首先创建一个表。 CREATE 命令用于创建表。
mysql> create table Table1
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.62 sec)
现在让我们创建另一个表。
mysql> create table Table2
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.49 sec)
现在,以下是如何创建触发器。
mysql> delimiter #
mysql> create trigger Table1Trigger after insert on Table1
-> for each row
-> begin
-> insert into Table2(id, name) values (new.id, new.name);
-> end#
Query OK, 0 rows affected (0.29 sec)
mysql> delimiter ;
要创建触发器,我们需要更改分隔符。
将行插入 Table1 会激活触发器并将记录插入 Table2。 在表1中插入记录。
mysql> insert into Table1 values(1,'John'),(2,'Smith'),(3,'Carol');
Query OK, 3 rows affected (0.28 sec)
Records: 3 Duplicates: 0 Warnings: 0
检查记录是否插入到两个表中。
mysql> select *from Table1;
这是显示在表 1 中成功插入记录的输出。
+------+-------+
| id | name |
+------+-------+
| 1 | John |
| 2 | Smith |
| 3 | Carol |
+------+-------+
3 rows in set (0.00 sec)
检查第二个表。
mysql> select *from Table2;
以下是显示在 Table2 中成功插入记录的输出。
+------+-------+
| id | name |
+------+-------+
| 1 | John |
| 2 | Smith |
| 3 | Carol |
+------+-------+
3 rows in set (0.00 sec)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.