基於MYSQL觸發器實現表間資料同步

來源:互聯網
上載者:User

標籤:更新   資料   技術分享   creat   new   font   ica   blog   list   

觸發器簡單瞭解

觸發器(trigger):監視某種情況,並觸發某種操作,它是與表事件相關的特殊的預存程序,它的執行不是由程式調用,也不是手工啟動,而是由事件來觸發,例如當對一個表進行操作( insert,delete, update)時就會啟用它執行。
觸發器經常用於加強資料的完整性條件約束和商務規則等。 觸發器建立文法四要素:

    1. 監視地點(table)
    2. 監視事件(insert/update/delete)
    3. 觸發時間(after/before)
    4. 觸發事件(insert/update/delete)

需求:

不同資料庫的兩張表的資料保持一致

思路:

基於觸發器當對錶1進行操作時候,將操作同步到表2

步驟:

建立一個觸發器,在表1插入,更新,刪除資料時候,對錶2進行同樣的操作

結果:

在同一個資料庫連接內的不同庫之間的表資料同步功能完全實現

觸發器對兩個表的操作有事務性

 

 

插入時觸發器

DROP TRIGGER IF EXISTS `insert_Replication_Application`;DELIMITER ;;CREATE TRIGGER `insert_Replication_Application` AFTER INSERT ON `源庫名稱`.`源表名稱` FOR EACH ROWBEGININSERT INTO `目的庫名稱`.`目的表名稱` (`目的欄位1`, `目的欄位2`, ) VALUES (new.新的值1, new.新的值2);END ;;DELIMITER ;

 

 

 

更新時觸發器

DROP TRIGGER IF EXISTS `update_Replication_Application`;DELIMITER ;;CREATE TRIGGER `update_Replication_Application` AFTER UPDATE ON `源庫名稱`.`源表名稱` FOR EACH ROWBEGINUPDATE `目的庫名稱`.`目的表名稱` SET `目的欄位1`=new.修改後的值1, `目的欄位2`=new.修改後的值2, WHERE (`目的主鍵欄位`=old.源主鍵欄位);END ;;DELIMITER ;

 

 

 

刪除時觸發器

DROP TRIGGER IF EXISTS `delete_Replication_Application`;DELIMITER ;;CREATE TRIGGER `delete_Replication_Application` AFTER DELETE ON `源庫名稱`.`源表名稱` FOR EACH ROWBEGINDELETE FROM `目的庫名稱`.`目的表名稱` WHERE (`目的主鍵欄位`=old.源主鍵欄位);END ;;DELIMITER ;

 

 文章寫的不錯?請掃下面作者的討飯專用碼,贊助一下。

 

基於MYSQL觸發器實現表間資料同步

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.