mysql导入文件出现Data truncated for column ‘xxx’ at row 1的原因

mysql导入文件出现Data truncated for column ‘xxx’ at row 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却出错.

mysql导入文件出现Data truncated for column 'xxx' at row 1的原因

mysql导入文件出现Data truncated for column 'xxx' at row 1的原因

 

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

mysql导入文件出现Data truncated for column 'xxx' at row 1的原因

 

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

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

mysql导入文件出现Data truncated for column 'xxx' at row 1的原因mysql导入文件出现Data truncated for column 'xxx' at row 1的原因

 

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

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

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

 

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113289.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月20日 下午11:00
下一篇 2021年10月21日 上午6:00


相关推荐

  • SSM框架讲解(史上最详细的文章)[通俗易懂]

    SSM框架讲解(史上最详细的文章)[通俗易懂]SSM框架(白痴都看完都会)文章目录SSM框架(白痴都看完都会)介绍SSM框架<原理>一、什么是SSM框架?1.Spring2.SpringMVC3.Mybatis(核心是SqlSession)二、代码实战1.创建配置工程2.代码书写介绍SSM框架<原理>一、什么是SSM框架?SSM框架是spring、springMVC、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层

    2022年7月12日
    27
  • Python 正则表达式大全[通俗易懂]

    Python 正则表达式大全[通俗易懂]1前言正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。上面都是官方的说明,博主自己的理解是(仅供参考):通过事先规定好一些特殊字符的匹配规则,然后利用这些字符进行组合来匹配各种复杂的字符串场景。比如现在的爬虫和数据分析,字符串校验等等都

    2022年10月3日
    4
  • Python阶乘求和

    Python阶乘求和题目:获得用户输入的整数n,输出1!+2!+…+n!的值。思路:依次计算每个阶乘的值,然后相加起来,即可得到结果代码:#获得用户输入的整数n,输出1!+2!+…+n!的值。num=int(input(“pleaseinputanumber:”))num_sum=0foriinrange(1,num+1):forjinrange(1,i+1):num_sum=num_sum+jprint(f”1!+…+{num}!的阶乘

    2025年8月18日
    5
  • Go语言初见println和fmt.Println区别「建议收藏」

    Go语言初见println和fmt.Println区别「建议收藏」目录println()函数:fmt.println()函数:总结区别:1.包不同:2.输出方式不同:3.方法返回值不同:4.内置print/println函数的调用不能接受数组和结构体参数。5.对于组合类型的参数,内置的print/println函数将输出参数的底层值部的地址,而fmt和log标准库包中的打印函数将输出接口参数的动态值的字面形式。6.如果一个实参有String()string或Error()string方法,那么fmt和log标准库包里的…

    2022年10月2日
    6
  • Python 中 str.format() 方法详解

    Python 中 str.format() 方法详解Python 中 str format 方法详解文章目录 Python 中 str format 方法详解 0 参考资料 1 术语说明 2 简单字段名 2 1 简单字段名的说明 2 2 省略字段名 2 3 数字形式的简单字段名 2 4 变量名形式的简单字段名 2 5 简单字段名的混合使用 2 6 使用元组和字典传参 3 复合字段名 3 1 复合字段名的说明 3 2 点号的使用 3 3 方

    2026年3月26日
    3
  • SSRF漏洞详解 一文了解SSRF漏洞

    SSRF漏洞详解 一文了解SSRF漏洞本篇总结归纳SSRF漏洞

    2022年6月25日
    91

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号