导入数据到mysql报错ERROR 1406 (22001): Data too long for column ‘comment‘ at row xx

  • Post author:
  • Post category:mysql




导入文本数据到mysql

报错:ERROR 1406 (22001): Data too long for column ‘comment’ at row xx

原因:’comment’列xx行的内容太长,超过了我们预先定义表的长度



解决方法



思路一:内容很重要,需要全部保留,那么就扩展列的大小或者更改列的类型

方法:如果一开始定义的是char/varchar类型,那么可以扩展类型的大小,但是建议用可变长度的数据类型,如text、mediumtext或longtext

MySQL数据类型 含义
char(n) 固定长度,最多255个字符
varchar(n) 固定长度,最多65535个字符
tinytext 可变长度,最多255个字符
text 可变长度,最多65535个字符
mediumtext 可变长度,最多2的24次方-1个字符
longtext 可变长度,最多2的32次方-1个字符



思路二:内容太长可以被截断,如果超长则自动截断

方法:

1.查询当前sql的模式: select @@sql_mode;

2.设置sql的模式: set sql_mode=`ANSI`;

mode 作用
最宽松的模式, 即使有错误既不会报错也不会有警告️
ANSI 宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告
TRADITIONAL 严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。
STRICT_TRANS_TABLES 严格模式,进行数据的严格校验,错误数据不能插入,报error错误



版权声明:本文为qq_43481435原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。