任务:sqlsever中有表A,MySql中有表B。表A和表B结构一样但不在同一台机器上。要求实现当A中的数据有增删改操作时,在B中进行同样的操作(可以有时差)
方案一(已实现):每天定时删除B表再把A表全部复制到A表。看到这个方案,不论从效率和用户体验上讲都很糟糕,因为数据量比较大有16W左右,但每天改变的就1k条左右。
方案二: 触发器+程序代码。 思路:在A表上间触发器,当触发时调用代码修改B表对应的数据
方案三: 寻找成熟的数据库同步技术。求方案二的sql语句和方案三的相关资料数据库触发器数据同步用户体验

解决方案 »

  1.   

    或者用触发器将每天被修改了数据复制到一张表C中,每天定时用C表的内容修改B表。
    这个触发器在sqlserver中怎么写呢??
      

  2.   

    在A上做触发器 讲增删改操作触发到新表T  然后定时比如五分钟 复制新表T到B上进行相关操作
      

  3.   


    --在SQl SERVER中的触发器
    if object_id('tr_test','tr')is not null
    drop trigger tr_test
    go
    create trigger tr_test
    on A表
    for insert,update,delete
    as
    begin
    /**
    首先创建一张和A表一样的表,直接复制吧
    复制语句:select * into temp_a表 from A表
    把新表temp_a表中的数据删除:delete from temp_a表
    **/
    -- 如果插入数据,更新数据
    insert into temp_a表
    select * from inserted
    -- 如果删除数据
    insert into temp_a表
    select * from  deleted
    end