MySQL Load data infile 和 ERROR 1261 (01000) 错误

今天导入数据时,发生错误1261,信息如下:

ERROR 1261 (01000): Row 1 does not contain data for all columns
ERROR 1262 (01000): Row 1 was truncated; it contained more data than there were input columns

 

这个错误的原因是数据文件中的列数跟 MySQL 数据表字段数目没有完全匹配,并且 sql_mode 设为 strict 模式。

查看数据后发现是有一个字段的数据中存在“\”,可能是这个字符导致的错误,设置了转义字符为“\\”,但还是不行,一会儿还要好好研究一下,当前的解决方式如下:

 

先查询当前的sql_mode,再设置sql_mode的模式。

mysql> show variables like 'sql_mode';

+---------------+----------------------------------------------------------------+
| Variable_name | Value                                                          |
+---------------+----------------------------------------------------------------+
| sql_mode      | strict_trans_tables,no_auto_create_user,no_engine_substitution |
+---------------+----------------------------------------------------------------+
set sql_mode='';

 

测试发现当Error 1265 时,使用相同的方式也能解决问题。我的数据库中存在可为空的double类型的字段,文件中该字段有些数据为空,这样在导入数据时,发生1265的错误。使用上述方法设置sql_mode后,问题解决,数据导入成功且无误,只是完成结果提示有警告。 

你可能感兴趣的:(数据库类)