用触发器让sqlserver和mysql同步

用触发器让sqlserver和mysql同步,第1张

概述任务:sqlsever中有表A,MySql中有表B。表A和表B结构一样但不在同一台机器上。要求实现当A中的数据有增删改 *** 作时,在B中进行同样的 *** 作。 方案一(已实现):每天定时删除B表再把A表全部复制到A表,http://www.voidcn.com/article/p-edcqlrub-bks.html。这个方案,不论从效率和用户体验上讲都很糟糕,因为数据量比较大有16W左右,但每天改变的就1k

任务:sqlsever中有表A,MysqL中有表B。表A和表B结构一样但不在同一台机器上。要求实现当A中的数据有增删改 *** 作时,在B中进行同样的 *** 作

方案一(已实现):每天定时删除B表再把A表全部复制到A表,http://www.voidcn.com/article/p-edcqlrub-bks.html。这个方案,不论从效率和用户体验上讲都很糟糕,因为数据量比较大有16W左右,但每天改变的就1k条左右。

方案二: 触发器+程序代码。 思路:在A表上建触发器,把A变中改变(增加,修改)的数据保存在一张中间表C中。然后用C表去更新B表,没有的数据加入,已存在的数据则修改。当A表中删除数据时,将删除的数据保存在中间表D中,通过主键的唯一,用D表中数据去删除B表中的数据。

sql代码如下 

[sql]  view plain copy --查看触发器   select * from sysobjects where xtype='TR'   --------------------------------------   --新增数据触发器   if object_ID('tr_insert','tr')is not null   drop trigger tr_insert   go   create  on dc_member   for insert   as   begin       -- 插入新数据触发       if(object_ID('temp_table','U'null)    --如果中间表存在       insert into temp_table from inserted       else            end   -----------------------------------------   --修改数据的触发器   if object_ID('tr_update',153); background-color:inherit; Font-weight:bold">trigger tr_update   update   -- 修改新数据触发   null)      -- insert into temp_table select * from inserted      update temp_table   set names=i.names,sex=i.sex,telephone=i.telephone,address1=i.address1,        pmdate=i.pmdate,expiry=i.expiry,levels=i.levels,dbno=i.dbno,hispoints=i.hispoints,       bnpoints=i.bnpoints,kypoints=i.kypoints,wxno=i.wxno,remark=i.remark   from inserted i, temp_table tt   where tt.pmcode=i.pmcode     from inserted     --删除数据的触发器   if object_ID('tr_del',128); background-color:inherit">null   trigger tr_del   go   on dc_member   delete   as   begin       -- 删除新数据触发       if(object_ID('temp_table_del',128); background-color:inherit">null)   into temp_table_del from deleted   else   from deleted     end   @H_165_404@

问题:以前处理大量数据是分段+多线程,现在处理这个有必要用多线程吗?用多线程会出现什么问题?....先把问题解决了再说

处理该业务的java代码 如下:.....待续


方案三: 寻找成熟的数据库同步技术

总结

以上是内存溢出为你收集整理的用触发器让sqlserver和mysql同步全部内容,希望文章能够帮你解决用触发器让sqlserver和mysql同步所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/1173810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存