导入文本数据到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 版权协议,转载请附上原文出处链接和本声明。