標籤:更新 資料 技術分享 creat new font ica blog list
觸發器簡單瞭解
觸發器(trigger):監視某種情況,並觸發某種操作,它是與表事件相關的特殊的預存程序,它的執行不是由程式調用,也不是手工啟動,而是由事件來觸發,例如當對一個表進行操作( insert,delete, update)時就會啟用它執行。
觸發器經常用於加強資料的完整性條件約束和商務規則等。 觸發器建立文法四要素:
-
- 監視地點(table)
- 監視事件(insert/update/delete)
- 觸發時間(after/before)
- 觸發事件(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觸發器實現表間資料同步