需求:在服务器中获取局域网中两个不同mysql数据库A、B,同步它们的一个同名表中的数据,即同步A.tabale1和B.table2,并存入服务器本地数据库C。请问大虾:
(1)是否必须分别将A.tabale1和B.table2中的数据读入内存?然后自行同步处理,再写到服务器的本地数据库中?
(2)能否使用mysql语句(如union all)来直接进行数据库操作?

解决方案 »

  1.   

    肯定是常规SQL语句操作了,最好给个列,记录行状态(同步过、未同步、同步中,未同步分为需要新增、需要删除、需要更新)。
      

  2.   

    你必须会写SQL语句,这样随便怎么同步都没问题,一条SELECT语句,条件为行状态(未同步),一条更新语句,INSERT\UPDATE\DELETE视行状态决定处理方式。很简单,至于效率你暂时就别考虑了,既然是新手,能做出来就可以了。
      

  3.   

    嗯,暂时不考虑效率,基本功能sql如下?
    insert into C.tabale1 select * from (select * from A.tabale1 union all select * FROM B.tabale1)现在关键是如何能同时操作远程的A、B中的表?
      

  4.   

    先从A中取出数据,保存在临时表,然后再取B中的表数据,再把它们union的结果保存在临时表,最后insert到c中的表。
      

  5.   

    你那样写只能同在一个数据库才行,不同的数据库,你要将结果集缓存,推荐新手用DataTable来存储查询的结果,然后建另一个数据库连接,遍历DataTable的所有行进行插入或修改。