日期:2014-05-18  浏览次数:20727 次

同步不同数据库中的表
需求:在服务器中获取局域网中两个不同mysql数据库A、B,同步它们的一个同名表中的数据,即同步A.tabale1和B.table2,并存入服务器本地数据库C。

请问大虾:
(1)是否必须分别将A.tabale1和B.table2中的数据读入内存?然后自行同步处理,再写到服务器的本地数据库中?
(2)能否使用mysql语句(如union all)来直接进行数据库操作?


------解决方案--------------------
肯定是常规SQL语句操作了,最好给个列,记录行状态(同步过、未同步、同步中,未同步分为需要新增、需要删除、需要更新)。
------解决方案--------------------
你必须会写SQL语句,这样随便怎么同步都没问题,一条SELECT语句,条件为行状态(未同步),一条更新语句,INSERT\UPDATE\DELETE视行状态决定处理方式。很简单,至于效率你暂时就别考虑了,既然是新手,能做出来就可以了。
------解决方案--------------------
先从A中取出数据,保存在临时表,然后再取B中的表数据,再把它们union的结果保存在临时表,最后insert到c中的表。
------解决方案--------------------
你那样写只能同在一个数据库才行,不同的数据库,你要将结果集缓存,推荐新手用DataTable来存储查询的结果,然后建另一个数据库连接,遍历DataTable的所有行进行插入或修改。