You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL5.7向BIGINT字段插入数据报超出范围错误如何解决

报错原因

你遇到的越界错误核心原因是待插入的数值超出了BIGINT类型的存储上限:

  • 有符号BIGINT取值范围:-9223372036854775808 ~ 9223372036854775807(最大值约9.2*10^18)
  • 无符号BIGINT取值范围:0 ~ 18446744073709551615(最大值约1.8*10^19)

你需要插入的数值110121014322232000011约为1.1*10^20,哪怕是无符号的BIGINT也无法承载,因此触发报错。MySQL 5.7没有提供比BIGINT更大的原生整数类型,你可以根据业务场景选择以下两种调整方案。

调整方案
  • 方案1:字段改为DECIMAL类型(适合需要做数值计算的场景)
    DECIMAL是精确数值类型,设置DECIMAL(M,0)即可存储M位长度的精确整数,M最大支持65位,完全满足你的存储需求,修改示例:

    -- 将以下语句中的`你的表名`替换为实际业务表名,可根据自身需要调整字段属性、注释
    ALTER TABLE 你的表名 MODIFY COLUMN bts DECIMAL(21,0) NOT NULL;
    
  • 方案2:字段改为字符串类型(适合存储业务标识类场景)
    如果bts字段存的是业务单号、设备编码、标识ID这类不需要参与数值运算的内容,优先改为VARCHAR类型存储,从根源上避免数值越界问题,同时兼容后续可能出现的带字母、特殊字符的编码格式,修改示例:

    -- 将以下语句中的`你的表名`替换为实际业务表名,长度可根据业务需要预留冗余
    ALTER TABLE 你的表名 MODIFY COLUMN bts VARCHAR(32) NOT NULL;
    

注意:不要使用FLOAT、DOUBLE这类浮点类型存储大整数,浮点类型存在固有精度损失,存储超过16位的整数时会出现末尾数值错乱,无法保证数据准确性。

内容的提问来源于stack exchange,提问作者Ashish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 23:27:32