MySQL建立觸發器實現統一主機下兩個資料庫的表同步

2022-02-18 12:04:04 字數 5175 閱讀 7392

1樓:匿名使用者

首先,建立要用於測試的 資料庫 與 表。

create database a;

create database b;

use a

create table table1(id int, val int);

use b

create table table2(id int, val int);

然後建觸發器

use a

delimiter //

create trigger tr_insert_t1

after insert on table1

for each row

begin

-- 檢查當前 環境,避免遞迴.

if @disable_trigger is null then

-- 設定禁用觸發器標誌.

set @disable_trigger = 1;

-- 插入目標表

insert into

b.table2

values

(new.id, new.val);

-- 恢復禁用觸發器標誌.

set @disable_trigger = null;

end if;

end;

//delimiter ;

use b

delimiter //

create trigger tr_insert_t2

after insert on table2

for each row

begin

-- 檢查當前 環境,避免遞迴.

if @disable_trigger is null then

-- 設定禁用觸發器標誌.

set @disable_trigger = 1;

-- 插入目標表

insert into

a.table1

values

(new.id, new.val);

-- 恢復禁用觸發器標誌.

set @disable_trigger = null;

end if;

end;

//delimiter ;

測試執行效果:

mysql> use b

database changed

mysql> insert into table2 values(2,2);

query ok, 1 row affected (0.01 sec)

mysql> use a

database changed

mysql> insert into table1 values (1, 1);

query ok, 1 row affected (0.00 sec)

mysql> select * from table1;

+------+------+

| id | val |

+------+------+

| 2 | 2 |

| 1 | 1 |

+------+------+

2 rows in set (0.00 sec)

mysql> select * from b.table2;

+------+------+

| id | val |

+------+------+

| 2 | 2 |

| 1 | 1 |

+------+------+

2 rows in set (0.00 sec)

2樓:妞妞你姐

大神,求賜教,我也是這個問題

3樓:老師小喬

建議還是先把觸發器的語法研究一下啊,然後再根據寫的**研究一下所有操作的寫法,以後就可以自己寫了……

4樓:鈄又蓮

create or replace trigger trg_aafter update

of aa

on a

referencing new as new old as oldfor each row

declare

begin

if :new.aa<>:old.aa thenupdate b set aa=:new.aa where a.xx=b.xx;

end if;

exception

when others then

null;

end trg_a;

5樓:

一樓的插入答案可以,樓主可以先把插入看懂,試著弄。

mysql中,怎麼用觸發器同步兩個表?

6樓:考拉的小小鋪

在a表建觸發器就可以了

7樓:匿名使用者

首先,建立要用於測試的 資料庫 與 表。

create database a;

create database b;

use a

create table table1(id int, val int);

use b

create table table2(id int, val int);

然後建觸發器

use a

delimiter //

create trigger tr_insert_t1

after insert on table1

for each row

begin

-- 檢查當前 環境,避免遞迴.

if @disable_trigger is null then

-- 設定禁用觸發器標誌.

set @disable_trigger = 1;

-- 插入目標表

insert into

b.table2

values

(new.id, new.val);

-- 恢復禁用觸發器標誌.

set @disable_trigger = null;

end if;

end;

//delimiter ;

use b

delimiter //

create trigger tr_insert_t2

after insert on table2

for each row

begin

-- 檢查當前 環境,避免遞迴.

if @disable_trigger is null then

-- 設定禁用觸發器標誌.

set @disable_trigger = 1;

-- 插入目標表

insert into

a.table1

values

(new.id, new.val);

-- 恢復禁用觸發器標誌.

set @disable_trigger = null;

end if;

end;

//delimiter ;

測試執行效果:

mysql> use b

database changed

mysql> insert into table2 values(2,2);

query ok, 1 row affected (0.01 sec)

mysql> use a

database changed

mysql> insert into table1 values (1, 1);

query ok, 1 row affected (0.00 sec)

mysql> select * from table1;

+------+------+

| id | val |

+------+------+

| 2 | 2 |

| 1 | 1 |

+------+------+

2 rows in set (0.00 sec)

mysql> select * from b.table2;

+------+------+

| id | val |

+------+------+

| 2 | 2 |

| 1 | 1 |

+------+------+

2 rows in set (0.00 sec)

請問mysql中,如何實現一個資料庫內,兩張表的實時同步互相更新。 15

8樓:匿名使用者

通過在主伺服器和從伺服器之間切分處理客戶查詢的負荷,可以得到更好的客戶響應時間。select查詢可以傳送到從伺服器以降低主伺服器的查詢處理負荷。但修改資料的語句仍然應傳送到主伺服器,以便主伺服器和從伺服器保持同步。

如果非更新查詢為主,該負載均衡策略很有效,但一般是更新查詢。

同一個伺服器上兩個資料庫表怎麼同步

9樓:夏末宇佳

如果是同一個mysql服務端的兩個資料庫同步可考慮下觸發器,如果是不同埠的兩個mysql服務端跟在兩臺伺服器同步配置上沒有區別。

資料庫最好不要做主從,不然效能會降低很多的。

可以採取其他的方法撒,比如分散式儲存。可以考慮下memcachedb,實現持久儲存。

表結構一致的話,可以考慮對映表去實現來的(shell指令碼定時同步,觸發器),不過shell指令碼會將環境搞的複雜一點,維護也會相對麻煩.對映表具體實現(在要同步的資料庫下建立相同的表結構):12

3456

78create table table_name

(column_name column_type ....

....

key ....

)engine=myisam default charset=utf8

connection="mysql://user:pwd@ip_address/db_name/table_name";

10樓:愛歷久emma老師

共用同一個資料庫就行了嘛

怎麼實現兩個資料庫的同步

觸發器cp端的作用,觸發器CP端的作用

cp是觸發器的觸發輸入端,用於給數字觸發器提供時鐘的作用。數字邏輯電路的設計分為組合邏輯電路和時序邏輯電路兩種型別。其中,組合邏輯電路採用常見的與非門,不需要時鐘即可實現邏輯功能 時序邏輯電路將邏輯閘電路整合為觸發器,如常見的jk觸發器。在時序邏輯電路中,最大的特點就是可以進行功能儲存,在cp端沒有...

SQL觸發器問題(資料庫),SQL資料庫觸發器問題求解,建立觸發器後,怎麼操作

你確定是用觸發器嗎?reference就是引用,用於在建立資料表的時候主外來鍵關聯的。sql資料庫觸發器問題求解,建立觸發器後,怎麼操作 建立觸發器後,可以在表中插入或刪除修改一些資料,看看觸發器能否正常工作,是否達到預期的效果。sql 資料庫觸發器生效問題,高手急救 你的觸發器是after觸發還是...

什麼叫上升沿d觸發器,什麼叫上升沿D觸發器??

邊沿d 觸發器 電平觸發的主從觸發器工作時,必須在正跳沿前加入輸入訊號。如果在cp 高電平期間輸入端出現干擾訊號,那麼就有可能使觸發器的狀態出錯。而邊沿觸發器允許在cp 觸發沿來到前一瞬間加入輸入訊號。這樣,輸入端受干擾的時間大大縮短,受干擾的可能性就降低了。邊沿d觸發器也稱為維持 阻塞邊沿d觸發器...