我想把我A表的数据的id,username字段导入到B表中。
注:A表id自增主键,username唯一索引。
    B表已经存了A表的部分数据。为此我打算将A表数据导出成为:insert ignore into B values ....的形式。然后导入到B表。测试中我发现,在B表为空的情况下,我的数据不能完全导入到B表中,莫名的少了一部分。是ignore的作用嘛?求教!谢谢!

解决方案 »

  1.   

    INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
      

  2.   

    检查B表的主键、外键、约束、索引名等等设置,
    用IGNORE参数,如出错,不插入也不会报错,去掉此参数,再插入试试
      

  3.   


    B表的username也是唯一索引主外键都没有了。
    现在B表是空的啊。插入怎么还会少了呢?
    如果没有ignore的话,可以完全导入的。
      

  4.   

    检查A表中的username是否有重复、NULL等等