2016年8月17日
一、目的
通過觸發器實現數據同步
二、思路
1.在數據庫需要同步的源表中建立一個insert觸發器,當有新數據插入時,會自動將新插入數據的主鍵記錄到臨時表temp中。(當然也可以記錄多個字段)
2.比較臨時表temp和源表中的數據,匹配兩個表中的主鍵值是否一致(也可以匹配多個字段),將符合條件的源表數據篩選出來,同步到目標表。
3.當同步完數據之后,清空temp表中的數據,進行下一輪同步。
三、優缺點
1.優點
避免對相同數據的掃描,減少同步時間。
2.缺點
只在本地測試,未能在大數據環境下實施,不知道其穩定性如何。
四、環境配置
1.在源數據庫中建立臨時表temp
create table temp
(temp_id int primary key auto_increment,zhang_id int);
2.在源數據庫中為源表創建觸發器(如表zhang)
create trigger trig_zhang_insert
after insert
on zhang
for each row
insert into temp values (null,new.id);
五、具體步驟
1.主流程圖設計
2.“數據同步”模塊設計
(1)“數據同步”作業設計
(2)“源表與目標表轉換”設計
注意:對表輸出控件的“定義錯誤處理”配置如下
當源表zhang無新數據插入,觸發器沒有往temp表中寫入數據,進行“temp表與源表比較”操作時會報錯,流程沒辦法繼續進行。配置“定義錯誤處理”可以避免這種情況。
3.“善后工作”模塊設計
(1)“善后工作”作業設計
(2)“刪除temp表數據”設計