表名,myTable;
列名:colum1,colum2,colum3;
文件名:c:/test.txt,其中只包含两列数据;我想用load命令更新部分列数据,命令如下:
LOAD DATA INFILE 'C:/TEST.TXT' INFO TABLE myTable (COLUM1,COLUM2);更新colum1,colum2成功,但是column3的数据也被置为null?
如果保证在更新部分列值的同时,其他列的数据不变?

解决方案 »

  1.   

    LOAD DATA INFILE 'C:/TEST.TXT' INFO TABLE myTable (COLUM1,COLUM2);
    改为
    LOAD DATA INFILE 'C:/TEST.TXT' REPLACE INTO TABLE myTable (COLUM1,COLUM2);
      

  2.   

    不行的,我试了。
    我对REPLACE 参数理解:原表中如果关键字段在load的文件中包含着,那就用 'C:/TEST.TXT'的记录替换,那我的 'C:/TEST.TXT'中仅仅包含colum1,colum2两列内容,不含column3的内容,替换之后,岂不是我的列表刚好为空?
    另注:我要的功能是如何快速替换当前表的两列内容,其他方法也行。谢谢!
      

  3.   

    load file 实现不了你这个需求 用程序循环读取文件编写sql语句实现
      

  4.   

    创建临时表,再replace into
      

  5.   

    主键为COLUM0,谢谢!