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

数据库中两张表之间的数据同步实现思路(增加、删除、更新)Mysql、sqlserver

时间:2018-12-29 01:05:45      阅读:455      评论:0      收藏:0      [点我收藏+]

标签:trigger   一个数据库   修改   删除   目的   需要   sqlserver   ret   operator   

分别创建增加、删除、更新的触发器(Trigger)来达到两张表之间数据同步的目的。

1:数据同步增加:
如有两张表——A表和B表,创建触发器使当A表插入数据后B表也同步插入数据。其中B表插入数据的字段需要同A表中的字段相对应。

CREATE TRIGGER 触发器名称 
ON A 
AFTER INSERT 
AS BEGIN INSERT INTO 
B表(B表字段1,B表字段2,B表字段3) 
SELECT A表字段1,A表字段2,A表字段3 
FROM INSERTED 
END

2.数据同步删除:
如有两张表——A表和B表,创建触发器使当A表删除数据后B表也同步删除数据。其中B表与A表应有相应主键关联。

CREATE TRIGGER 触发器名称 
ON A 
AFTER DELETE 
AS BEGIN DELETE B 
WHERE 
B表主键 IN( 
SELECT A表主键 
FROM DELETED) 
END

3.数据同步更新:
如有两张表——A表和B表,创建触发器使当A表数据更新后B表也同步更新数据。

CREATE TRIGGER 触发器名称 
ON A 
AFTER UPDATE 
AS 
update B 
SET 
B.B表字段1=A.A表字段1 
FROM 
B AS B,INSERTED AS A 
WHERE B.B表主键=A.A表主键

理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”

一个数据库教程系统中有两个虚拟表用于存储在表中记录改动的信息,分别是:

Tables虚拟表Inserted虚拟表Deleted
新增时 存放新增的记录 不存储记录
修改时 存放用来更新的新记录 存放更新前的记录
删除时 不存储记录 存放被删除的记录

数据库中两张表之间的数据同步实现思路(增加、删除、更新)Mysql、sqlserver

标签:trigger   一个数据库   修改   删除   目的   需要   sqlserver   ret   operator   

原文地址:https://www.cnblogs.com/syncnavigator/p/10193516.html

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