簡體   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