数据库中两张表之间的数据同步实现思路(增加删除更新)Mysqlsqlserver
Posted www.syncnavigator.cn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中两张表之间的数据同步实现思路(增加删除更新)Mysqlsqlserver相关的知识,希望对你有一定的参考价值。
分别创建增加、删除、更新的触发器(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 |
---|---|---|
新增时 | 存放新增的记录 | 不存储记录 |
修改时 | 存放用来更新的新记录 | 存放更新前的记录 |
删除时 | 不存储记录 | 存放被删除的记录 |
以上是关于数据库中两张表之间的数据同步实现思路(增加删除更新)Mysqlsqlserver的主要内容,如果未能解决你的问题,请参考以下文章