MySQL触发器实现两表数据同步的代码详解
作者:黑夜开发者
在数据库应用中,我们经常需要对数据进行某些操作,并在操作完成后进行相应的处理,这时候,可以使用触发器来实现这些功能,MySQL提供了强大的触发器功能,本文将给大家详细介绍MySQL触发器实现两表数据同步,需要的朋友可以参考下
本文主要实现两个表数据同步,当第一个表数据变化的时候,自动同步数据到第二张表。
1. 创建一个数据表 order_1,同时复制出一份表order_2
表结构如下:
CREATE TABLE a_order_1 ( order_id int(11) NOT NULL AUTO_INCREMENT, order_sn varchar(100) DEFAULT NULL, user_nick varchar(100) DEFAULT NULL, user_mobile varchar(100) DEFAULT NULL, address varchar(255) DEFAULT NULL, status tinyint(1) DEFAULT NULL, payment decimal(10,2) DEFAULT NULL, PRIMARY KEY (order_id) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
2. 创建插入触发器
DELIMITER $ create trigger a_order_1_trigger after insert on a_order_1 for each row begin INSERT INTO a_order_2(order_id,order_sn,user_nick,user_mobile,address,status,payment) VALUES(new.order_id,new.order_sn,new.user_nick,new.user_mobile,new.address,new.status,new.payment); END $; DELIMITER ;
3. 创建更新触发器
DELIMITER $ create trigger a_order_1_trigger_u after update on a_order_1 for each row begin update a_order_2 set order_id=new.order_id,order_sn=new.order_sn,user_nick=new.user_nick,user_mobile=new.user_mobile,address=new.address,status=new.status,payment=new.payment where order_id=old.order_id; END$; DELIMITER ;
4 创建删除触发器
DELIMITER $ create trigger a_order_1_trigger_d after delete on a_order_1 for each row begin delete from a_order_2 where order_id=old.order_id; END$; DELIMITER ;
到此这篇关于MySQL触发器实现两表数据同步的代码详解的文章就介绍到这了,更多相关MySQL触发器两表数据同步内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!