Out of range value for column

问题:

使用python脚本导入excel表数据时,出现以下报错: 

FutureWarning: DataFrame.ftypes is deprecated and will be removed in a future version. Use DataFrame.dtypes instead.
(1264, "Out of range value for column 'EMPLOYEE_NUMBER' at row 523")

错误原因: Out of range value for column

入参的数值超过了数据库中定义的类型长度,这时候需要修改数据库中的类型了。

解决办法:

修改数据库中的表字段取值范围(字段类型根据情况也可更改)。

例:就像int(10),但是导入的数据中有超出范围的,可以把字段的类型改一下,比如改成bigint(50)等等。 

 

 

另外一种情况 :

最近刚跳槽到一个新单位,刚去第一天屁股还没坐热,甚至连入职手续都还没办好就先给我一个任务,让我尽快解决掉。
说是一个插入订单的时候插入报错了,跟踪代码最后发现是插入的时候数据库报Out of range value for id这个错误,由于这是第一次在项目中使用mysql,所以很多对mysql的问题更多还是依赖网上搜索。
根据字面意思是超出列最大范围,百度搜索,很多人都是说什么加大字段长度,可仔细一看超出范围的那一列是int类型,这怎么加长,int类型的最大范围都是固定的,所以加大长度行不通,后来将插入的sql语句调出来,发现id那一列使用的是last_insert_id(id)这个函数来解决的,会不会是这个产生的问题,又继续查这个函数是干嘛的,发现也不是这个函数产生的问题。
后来仔细看ddl,发现id自动是自增的,但是id那一列最大的才2000多,怎么可能超范围呢,各种可能的解决办法都试过一次后觉得问题应该还是出在自增那的问题,查查这个自增到底是怎么回事把。
后来使用show create table xxx命令后查看到id列的 auto_increament=4294967296了,哦原来问题出在这里了,自增列的起始值已经到了int类型的最大值,在插入的时候肯定是超出范围了,果断ALTER TABLE xxx AUTO_INCREMENT = 100,从100开始继续新增后,问题解决。
有时候遇到相同的错误可能原因并不一样,需要具体分析,当网上没有能解决自己问题的时候就要从自身找找问题,从最开始的时候下手,反而更能解决问题。另外吐槽一下百度,Out of range value for column这个关键字可能前几页的问题都一样,解决思路可能也都是互相抄袭。所以能翻墙的还是翻墙把

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值