繁体   English   中英

PHPMYADMIN | 我们如何同步两个不同 MySQL 数据库中的两个表(在同一服务器内)?

[英]PHPMYADMIN | How could we sync two tables in two different MySQL databases (Within same server)?

  • 我有两个 MySQL 数据库site1site2 [都驻留在同一台服务器中]。

  • 我在上述both数据库中都有一个名为users的表(在site1site2结构site2 )。 结构如下图:

    在此处输入图片说明

这个怎么运作 :

因此, site1site2将让用户通过移动应用程序将自己注册到数据库(对于某些用例)。 因此,用户下载移动应用程序 -> 根据用户位置,他们将进入site1site2 -> 用户自行注册,这就是在users表中生成new row entries

我想要达到什么目标?

由于同一用户偶尔会访问两个站点, site1site2应该同步所有列的users表。 因此,基于唯一的电话号码phone ), site1site2users表的行应始终同步。 我们怎样才能做到这一点? 我知道触发器是一个选项,但我很感激要使用的格式的示例代码……或者任何提示都将不胜感激。 现在确定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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM