现在有个问题在眼前,两个数据库A和A上一次的备份B,A已经使用了一段时间,由于某种原因,不小心切换到使用B,导致一段时间的操作分布在两个数据库中,后来发现问题,想把两段时间的数据进行合并,请问思路应该怎么样?本来我想用union把连个表查出来的数据连起来直接导入新的一个表的,但是考虑到A和B操作有交叉,可能导致同一个主键不同数据库中已经跟着不同的数据,然后他们子表中的外键更加不用说了;然后就是之前有些数据又被改动过,就像审批那样,在这A中可能已经审批完了,在B中却还没有审批,现在就是有一部分数据在旧的数据里,一部分在新的数据库里,怎么弄啊?

解决方案 »

  1.   

    A和A的上一次备份B,中间有一部分数据,在B上运行的时候应该把那一部分数据覆盖了,想要弄到一个库里只能自己来判断哪些是需要的。
      

  2.   

    请问你的数据库表字段里面有text,image等复杂类型的字段吗?如果没有的话,可以将一段时间内的数据逐表生成sql语句,然后在另外一个表中执行。
      

  3.   

    这个不清楚是不是SQL2008,或者oracle11g,如果是的话,可以使用merge.
    或者你自己实现一个merge的规则,没有插入,有则保持不动,当然操作之前需要进行备份
      

  4.   

    用sql语句截取导入吧,导入表内容主意导入的顺序。在其他计算机上多试验几次,肯定可以。我这样做过,比较麻烦,但是这是最好的方法,前提条件,你对你们的数据表之间的关系非常清楚