在用sql loader做csv文件导入mysql时,偶然发现日志报了Row xxx doesn't contain data for all columns。mybatis xml sql语句如下:
检查发现是csv文件中有些单元格数据存的是转义字符‘’,但我并没有在sql中添加escaped by语句,sql loader 读到这里的时候依然认为‘’是转义符号而非一个字段值。查询资料发现load data infile语法在FIELDS子句,缺省会把''作为转义符号,即ESCAPED BY '\'。于是,为了正确读取csv文件中的数据,在sql中添加escaped by '',测试后导入成功。