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觸發器...