码迷,mamicode.com
首页 > 数据库 > 详细

基于MYSQL触发器实现表间数据同步

时间:2018-01-14 21:20:05      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:更新   数据   技术分享   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 ROW
BEGIN
INSERT 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 ROW
BEGIN
UPDATE `目的库名称`.`目的表名称` 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 ROW
BEGIN
DELETE FROM `目的库名称`.`目的表名称` WHERE (`目的主键字段`=old.源主键字段);
END ;;
DELIMITER ;

 

 文章写的不错?请扫下面作者的讨饭专用码,赞助一下。

 

技术分享图片

基于MYSQL触发器实现表间数据同步

标签:更新   数据   技术分享   creat   new   font   ica   blog   list   

原文地址:https://www.cnblogs.com/yangjinheng/p/8284201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!