【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:
修改更新数据符合字段要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值