博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql导入文件出现Data truncated for column 'xxx' at row 1的原因
阅读量:6413 次
发布时间:2019-06-23

本文共 577 字,大约阅读时间需要 1 分钟。

mysql导入文件的时候很容易出现"Data truncated for column 'xxx' at row x",其中字符串里的xxx和x是指具体的列和行数.

有时候,这是因为数据类型的不对应,或者字符串长度不够而造成的.

但是,经常出现row 1就报错,并且感觉它没什么不对的样子.

这往往是因为windows的回车换行"\r\n"作怪,下面的测试说明了这种情况.

 

我有一个train.csv的数据文件,我用python修改后保存为c.csv.

但是,我用相同的命令把它们导入到mysql时,train能导入,c却出错.

 

我把行结束符从"\n"换成"\r\n"后,导入成功.

 

用notepad打开这两个文件,会发现train根本没有换行,而c则有换行.

这说明train里只有"\n",因此notepad无法识别到换行,而c里则是"\r\n".

 

然而用python生成c.csv的时候,输出只有"\n",这说明python在win下会自动把"\n"变成"\r\n".

还有一点是,除了notepad外的大部分win下的编辑器,都既能识别"\n"又能识别"\r\n".

因此只有用notepad才能知道到底是"\n"还是"\r\n",或者用winHex等工具直接看ascii码.

 

最后的结论是,注意这个数据文件的换行到底是"\n"还是"\r\n".

你可能感兴趣的文章
我的友情链接
查看>>
request.getRequestURI() 、request.getRequestURL()
查看>>
二叉查找树--查找、删除、插入(Java实现)
查看>>
简单的UDP多线程模型
查看>>
Unity曲线编辑器和bezier曲线插值
查看>>
sql注入 与 预防
查看>>
Rockscluster 删除 autofs 自动挂载点home
查看>>
linux无线网卡配置
查看>>
android中数据存储的ContentProvider的使用方法
查看>>
网络系统管理与维护2488
查看>>
裸机telnet处理过程记录
查看>>
Nginx源码安装及调优
查看>>
EasyUi subgrid 三级列表实现
查看>>
python 使用curve25519
查看>>
时间格式化,时间比较,电话号码格式正确判断
查看>>
支持向量机SVM(二)
查看>>
自然语言处理研发工程师
查看>>
http head 详解
查看>>
我的友情链接
查看>>
Django XSS***
查看>>