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后,问题解决,数据导入成功且无误,只是完成结果提示有警告。 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值