我们小组最近在用mysql开发项目,但由于刚接触不久,还不太熟悉。想问下,
例如说,ABC三人用的是相同结构的mysql数据库,都各自部署在自己的机子上,一开始都是空的A队员在他自己的数据库里用户表里插入了一条记录,在他的数据库里这条记录的id是1(这列是自增长的主键列)B队员也在他自己的数据库用户表里插入了一条不同的记录,在他的数据库里这条记录ID当然也是1C队员就想合并项目,并保留这些数据,他希望A的那条记录不管ID为多少都在C的最后一条记录ID基础上加上,B的也同样在插完A的后再加1,也就是说忽略了原来的ID想做到这样,该怎么做呢?谢谢

解决方案 »

  1.   

    简单说,就是怎样才能在导出的时候自动判断哪些是自增长的列就不作insert
      

  2.   

    相同的问题别人也有在别的论坛提问了,不过还没有正解,贴出来,怕我自己表达不清没让人看懂我在说什么我这里有两个数据库,分别放在不同的服务器上,两个数据库的结构是一模一样的,但是数据库内容不一样,我想把其中一个数据库的一个数据表的内容,追加到另外一台服务器数据库的数据库表中,怎么样实现,谁能告诉我一下?(要保证追加的数据内容的id是自增长的,比如:我要导入的数据表的id已经为10000,我想从10001开始追加,有办法吗?)
    我自己用了mysqldump命令,但是导出来的文件里面有id字段,然而它不能插进另一个数据库表中
      

  3.   

    恐怕要用SP来解决,首先取得导入的数据表的最大id,修改自增字段的开始值
    ALTER TABLE tbl AUTO_INCREMENT = 10000
    orset auto_increment_increment = 10000
    再导入数据。
      

  4.   

    第一种方法:取得接受表的最大ID_max,之后修改被复制的表的ID为ID_max加上当前ID,然后就可以将被复制的表的数据直接插入接受表了。(很笨的方法啊)。
    第二种方法:逐条查出再插入。就是把被复制的表的数据查出来,但是不查ID,然后插入到接受表的对应字段上。(也很笨)。
      

  5.   

    恐怕要用SP来解决,首先取得要导入的数据表的最大id,即C表,修改自增字段的开始值
    ALTER TABLE tbl AUTO_INCREMENT = 10000
    orset auto_increment_increment = 10000
    再导入数据,用INSERT。
      

  6.   


    问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)假设 
    A (id,uname)
    1 'aaa'
    2 'bbb'B (id,uname)
    1 'ccc'
    2 'ddd'合并后C (id,uname)
    1 'aaa'
    2 'bbb'
    3 'ccc'
    4 'ddd'
    inset into C(uname) select uname from A;
    inset into C(uname) select uname from B;
      

  7.   

    我自己倒是还有个方法,再等等看,没人回答就结了我的方法是:mysqldump出结果,再复制到一些有正则表达式的IDE里,用正则表达式删掉ID字段跟ID的值
      

  8.   

    如果C表中的ID不是自增的话,先取得C表MAX ID,再INSERT,
    如是自增的话,直接插入