数据库中两张表之间的数据同步实现思路(增加、删除、更新)Mysql、sqlserver
SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用于大容量数据库快速同步。
安装包下载地址:https://www.syncnavigator.cn/Setup.zip
帮助文档地址:https://www.syncnavigator.cn/Help_zh-CN.chm
Web文档地址:https://www.syncnavigator.cn/chm/index.htm
创建第一个同步项目
使用 HKROnline SyncNavigator 创建一个数据库同步项目。只需要通过简单的配置,创建完成后您可以随时执行数据库同步任务。
1.点击 “SyncNavigator(Client)” 图标进入系统。
2.在登录界面中输入连接到的服务器地址,点击 “确定” 按钮开始连接。
-
注意:这里不是登陆您的数据库,而是登陆到本软件的管理端。
-
默认情况下直接点击 “连接” 按钮即可(本机默认已经安装)。
-
默认服务器登录用户名为 “admin” 密码为空。
-
本机服务器地址 = 127.0.0.1 。
-
您可以使用域名或者IP地址作为服务器地址。如果指定了端口号可以使用 IP:Port 方式填写。
下载网站:www.SyncNavigator.CN
客服QQ1793040
———————————————————-
关于HKROnline SyncNavigator 注册机价格的问题
HKROnline SyncNavigator 8.4.1 非破解版 注册机 授权激活教程
最近一直在研究数据库同步的问题,在网上查了很多资料,也请教了很多人,找到了一种通过快照复制的方法。研究了一番后发现之前就是用的这个方法,效果不是很好,果断放弃。经过了一番寻觅和他人指点,最后从一位热心网友那里得知一款很好用的软件—— SyncNavigator。
好东西就要拿出来跟大家分享,所以今天向大家介绍一下这款软件,及其一些使用方法。下面先看看它有什么强大的功能吧!
SyncNavigator的基本功能:
自动同步数据/定时同步数据
无论是实时同步/24小时不间断同步,还是根据计划任务(每小时/每日/每周/等)定时自动同步都能完全胜任。
完整支持 Microsoft SQL Server
完整支持 Microsoft SQL Server 2000 2005 2008 数据库类型。并能在不同数据库版本之间相互同步数据。
支持 MySQL 4.1 以上版本
支持 MySQL 4.1 5.0 5.1 5.4 5.5。并能在不同数据库版本之间相互同步数据。
无人值守和故障自动恢复
当数据库故障或网络故障以后,无需人工干预(或操作)自动恢复同步并确保数据完全准确,可靠。
同构数据库同步/异构数据库同步
SQL Server to SQL Server, MySQL to MySQL, SQL Server to MySQL 等都能轻松实现。
断点续传和增量同步
当同步完成(或中断)后,再次同步时能继续上一次的位置增量同步,避免每次都需要从头开始的问题。
分别创建增加、删除、更新的触发器(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 |
---|---|---|
新增时 | 存放新增的记录 | 不存储记录 |
修改时 | 存放用来更新的新记录 | 存放更新前的记录 |
删除时 | 不存储记录 | 存放被删除的记录 |