【MySQL报错】---Data truncated for column ‘age‘ at row...
目录
- 一、前言
- 二、问题分析
- 三、解决办法
一、前言
欢迎大家来到权权的博客~ 欢迎大家对我的博客进行指导,有什么不对的地方,我会及时改进哦~
博客主页链接点这里–>:权权的博客主页链接
二、问题分析
问题一修改表结构 XXX 为 not null 时,表数据 XXX 字 段 存在 null 值。
问题二:修改表结构字段长度小于更新或插入的字段长度。
问题三:
字段类型不匹配。如字段类型设置整型类型、浮点类型等,新插入或更新的数据非此类型的。
这种是有这种现象的,就是比如说,本来类型是tinyint,范围是-128到127,但是要是插入的元素是200的时候,就可能会报data truncate截断错误,但是有的会报data to long或者data out of value的错误。
这种报错不好复现,本身来说,也不算是一种报错,算是一种截断策略,现在是将sql_mode严格模式禁用了,现在出现的数据现象就是截断的现象了,但是他不警告截断,这个还是要看mysql了。本身来说截断这种还是看最后的数据,就比如我最后将sql_mode调整为非严格模式,虽然说没有显式data truncate,但是最终我们通过select可以看到,数据是真实截断了。
三、解决办法
解决办法1:去掉或修改带有 null 值 的 ( 需要设置 not null 的) 字段。
解决办法2:
更新或插入的数据为合适长度值 或 修改表结构调整合适的字段长度;
解决办法3:
修改更新数据符合字段要求。