同一个服务器,两个mySQL数据库A和B,两个数据库中都有表A.a和B.a,字段等都一样,但是数据都不一样,其中字段id为自增型关键字段,两个表的关键字段有重复。现要从数据库A的表A.a中导入数据库B的表B.a的数据,重复的关键字段数据在A.a的最大id后自增。
这样一个SQL语句该怎么写呢?先谢过将要回答的各位大大~

解决方案 »

  1.   

    insert ignore into dbname1.tbname1(col1,col2) select col1,col2 from dbname1.tbname2 
      

  2.   

    insert into a.a (col1,col2) select col1,col2 from b.aID 字段不要列出来即可。
      

  3.   

    详细说明 ,直接导入不行?
    inert into a.a(f2,f3...)
    select f2,f3... from b.a
      

  4.   

    我的SQL就是类似楼上几位的,但是提示这个错误:#1062 - Duplicate entry '4294967295' for key 1 
      

  5.   

    不会吧,你是将自增字段加入INSERT中的,去掉自增字段,假设 F1为自增
    inert into a.a(f2,f3...)
    select f2,f3... from b.a
      

  6.   

    我看了下,自增字段只有id,已经把id去掉了,依然报这个错甚至我把所有字段都去掉了,只保留插入的 subject(标题) 字段,仍然报这个错,同样是#1062 - Duplicate entry '4294967295' for key 1
      

  7.   

    自增字段达到上限了?
    在数据库A中运行
    select   AUTO_INCREMENT   from   information_schema.TABLES   where   TABLE_NAME='a'
    结果是什么
      

  8.   

    AUTO_INCREMENT  
    ----------------------
    187699 
    4294967296 
    266 
    10 
    10 
    266 显示这6行数据
      

  9.   

    SELECT TABLE_NAME,AUTO_INCREMENT FROM information_schema.TABLES 
    看看4294967296的是哪个表的,假设是DD的
    ALTER TABLE dd AUTO_INCREMENT = 1;
      

  10.   

    两个表都使用了ALTER TABLE dd AUTO_INCREMENT = 1;
    但依然报错,不过错误ID从4294967296变为了4294967295
      

  11.   

    新建1个表(DD),将此表内容导入(除自增字段),TRUNCATE 此表,导入备份的数据(INSERT INTO 
    此表(F2,F3,) SELECT * FROM DD),再导入B中的记录
      

  12.   

    贴出你的实际语句。另外贴出你的show create table 结果。