![](/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.