日期:2014-05-16  浏览次数:20635 次

用触发器让sqlserver和mysql同步

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

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

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

sql代码如下 

[sql] view plaincopy
  1. --查看触发器  
  2. select * from sysobjects where xtype='TR'