当前位置: 首页 > article >正文

Data truncation: Out of range value for column ‘allow_invite‘ at row 1

在这里插入图片描述

  • 由于前端传递的数值超过了mysql数据库中tinyint类型的取值范围,所以就会报错。
Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'allow_invite' at row 1at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104)at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:974)at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1113)at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061)at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1381)at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1046)at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:2843)at com.alibaba.druid.filter.FilterAdapter.preparedStatement_executeUpdate(FilterAdapter.java:1091)at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeUpdate(FilterEventAdapter.java:491)at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:2841)at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeUpdate(PreparedStatementProxyImpl.java:194)at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeUpdate(DruidPooledPreparedStatement.java:256)at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175)... 146 more
-- auto-generated definition
create table invite_codes
(id                 int auto_incrementprimary key,admin_id           int                                  null,bound_phone        varchar(20)                          null,bound_wx_uid       varchar(255)                         null,created_date       timestamp  default CURRENT_TIMESTAMP not null,expire_time        datetime                             null,generated_date     datetime                             not null,invite_code        varchar(255)                         not null,invite_level       int                                  null,is_locked          tinyint(1) default 0                 null,last_modified_date timestamp                            null on update CURRENT_TIMESTAMP,remark             text                                 null,status             tinyint    default 0                 not null,user_id            int                                  null,weixin_headimg     varchar(255)                         null,weixin_nickname    varchar(255)                         null,invitor            int                                  not null,allow_invite       tinyint    default 0                 not null
)engine = MyISAM;create index FKnqn27fyjlgio5y60eieohi0bfon invite_codes (invitor);

根据你提供的数据库创建脚本,allowInvite 字段在数据库中的定义如下:

allow_invite       tinyint    default 0                 not null

分析

  • 数据类型tinyint
  • 默认值0
  • 是否为空not null

关键点

  1. 有符号 vs 无符号

    • 默认情况下tinyint 在 MySQL 中是有符号的,取值范围是 -128127
    • 无符号:如果字段定义中包含 unsigned 关键字,则取值范围是 0255
  2. 你的字段定义

    • 在你的创建脚本中,allow_invite 字段没有 unsigned 关键字,因此它是有符号的 tinyint

结论

  • 取值范围allow_invite 字段的取值范围是 -128127
  • 前端传递 999 的结果:由于 999 超出了有符号 tinyint 的最大值 127,前端传递 999 会导致数据库插入或更新时报错。

解决方案

为了支持 999 或更大的值,你可以将 allow_invite 字段改为无符号的 tinyint 或者更大的数据类型。以下是两种解决方案:

1. 将 allow_invite 改为无符号的 tinyint
ALTER TABLE invite_codes MODIFY COLUMN allow_invite tinyint unsigned default 0 not null;
2. 将 allow_invite 改为 smallint
ALTER TABLE invite_codes MODIFY COLUMN allow_invite smallint default 0 not null;
  • smallint 的取值范围是 -3276832767(有符号)或 065535(无符号),可以更好地支持更大的值。

示例:修改为无符号的 tinyint

ALTER TABLE invite_codes MODIFY COLUMN allow_invite tinyint unsigned default 0 not null;

示例:修改为 smallint

ALTER TABLE invite_codes MODIFY COLUMN allow_invite smallint default 0 not null;

更新实体类

确保在 Java 实体类中更新相应的字段定义,以匹配数据库的变化。例如,如果改为无符号的 tinyint

@Column(columnDefinition = "tinyint unsigned default 0")
@ApiModelProperty(value = "允许邀请的层级,默认为0(不允许)," +"1表示该用户可以生成邀请码,但其生成的邀请码对应的用户不能继续生成邀请码;" +"2表示该用户可以生成邀请码,其生成的邀请码对应的用户也可以生成邀请码,但再下一级用户不能生成邀请码;" +"999表示用户可以生成邀请码,并且可以无限传递下去;", required = true, example = "1")
private Integer allowInvite;

或者如果改为 smallint

@Column(columnDefinition = "smallint default 0")
@ApiModelProperty(value = "允许邀请的层级,默认为0(不允许)," +"1表示该用户可以生成邀请码,但其生成的邀请码对应的用户不能继续生成邀请码;" +"2表示该用户可以生成邀请码,其生成的邀请码对应的用户也可以生成邀请码,但再下一级用户不能生成邀请码;" +"999表示用户可以生成邀请码,并且可以无限传递下去;", required = true, example = "1")
private Integer allowInvite;

通过这些修改,你可以确保 allowInvite 字段能够支持 999 或更大的值,从而避免前端传递 999 时出现数据库错误。

TinyInt 数据类型 有符号: -128 至 127 无符号: 0 至 255 使用 1 字节存储

相关文章:

Data truncation: Out of range value for column ‘allow_invite‘ at row 1

由于前端传递的数值超过了mysql数据库中tinyint类型的取值范围,所以就会报错。 Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column allow_invite at row 1at com.mysql.cj.jdbc.exceptions.SQLExcept…...

HCIA—IP路由静态

一、概念及作用 1、概念:IP路由是指在IP网络中,数据从源节点到目的节点所经过的路径选择和数据转发的过程。 2、作用 ①实现网络互联:使不同网段的设备能够相互通信,构建大规模的互联网络 ②优化网络拓扑:根据网络…...

Hz的DP总结

前言: 鉴于本人是一个DP低手,以后每写一道DP都会在本篇博客下进行更新,包括解题思路,方法,尽量做到分类明确,其中的题目来自包括但并不限于牛客,洛谷,CodeForces,AtCode…...

GB/T 25000.51-2016 标准中维护性如何测试,关注哪些内容

以下是 GB/T 25000.51-2016 标准中维护性下条款各方面的测试方法及关注内容: 模块化 测试方法 组件停止与替换测试:在系统运行时,尝试停止或替换某个组件,观察其他组件能否正常独立运行及处理任务1。接口调用测试:检…...

【三极管8050和8550贴片封装区分脚位】

这里写自定义目录标题 三极管8050和8550贴片封装区分脚位三极管8050三极管8550 三极管8050和8550贴片封装区分脚位 三极管8050 增加了 检查列表 功能。 [ NPN型三极管(SS8050) ]: SS8050的使用及引脚判断方法 三极管8550...

C# Unity 唐老狮 No.6 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: 全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体格式,…...

用《设计模式》的角度优化 “枚举”

枚举应该都有用过,枚举主要的作用是为了方便用户查找和引用枚举。 案例一 下面的枚举逻辑很简单,就是通过枚举值返回不同的结果。 public enum OperationEnum {EQUAL_TO,CONTAINS,START_WITH,END_WITH;public String getOperationValue(String value)…...

二、Visual Studio2022配置OpenGL环境

文章目录 一、OpenGL库的下载二、OpenGL环境配置三、测试代码演示 一、OpenGL库的下载 OpenGL配置的库是GLFWGLAD ,GLFW 主要用于创建 OpenGL 窗口和管理输入;GLAD 主要用于加载 OpenGL 函数 GLFW下载地址 下载Windows的32bit版本即可。 下载完成解压如…...

YOLOv8改进------------SPFF-LSKA

YOLOv8改进------------SPFF-LSKA 1、LSAK.py代码2、添加YAML文件yolov8_SPPF_LSKA.yaml3、添加SPPF_LSKA代码4、ultralytics/nn/modules/__init__.py注册模块5、ultralytics/nn/tasks.py注册模块6、导入yaml文件训练 1、LSAK.py代码 论文 代码 LSKA.py添加到ultralytics/nn/…...

Pytorch构建LeNet进行MNIST识别 #自用

LeNet是一种经典的卷积神经网络(CNN)结构,由Yann LeCun等人在1998年提出,主要用于手写数字识别(如MNIST数据集)。作为最早的实用化卷积神经网络,LeNet为现代深度学习模型奠定了基础,…...

视音频数据处理入门:颜色空间(二)---ffmpeg

目录 概述 流程 相关流程 初始化方法 初始化代码 转换方法 转换代码 释放方法 整体代码介绍 代码路径 概述 本篇简单说一下基于FFmpeg的libswscale的颜色空间转换;Libswscale里面实现了各种图像像素格式的转换,例如:YUV与RGB之间的…...

240 Vocabulary Words Kids Need to Know

《240 Vocabulary Words Kids Need to Know》是美国学乐出版社(Scholastic)推出的词汇学习系列练习册,专为美国小学阶段(G1-G6)设计,基于CCSS(美国共同核心州立标准)编写&#xff0c…...

AI-Deepseek + PPT

01--Deepseek提问 首先去Deepseek问一个问题: Deepseek的回答: 在汽车CAN总线通信中,DBC文件里的信号处理(如初始值、系数、偏移)主要是为了 将原始二进制数据转换为实际物理值,确保不同电子控制单元&…...

【五.LangChain技术与应用】【8.LangChain提示词模板基础:从入门到精通】

早上八点,你端着咖啡打开IDE,老板刚甩来需求:“做个能自动生成产品描述的AI工具”。你自信满满地打开ChatGPT的API文档,结果半小时后对着满屏的"输出结果不稳定"、"格式总出错"抓耳挠腮——这时候你真需要好好认识下LangChain里的提示词模板了。 一、…...

pnpm add和pnpm install指定包名安装的区别

1. pnpm add 包名 行为: 安装包到 node_modules。自动将包添加到 package.json 的 dependencies 中(默认)。支持通过参数指定依赖类型(如 -D 表示 devDependencies,-O 表示 optionalDependencies)。更新 p…...

LeetCode 718.最长重复子数组(动态规划,Python)

给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1: 输入:nums1 [1,2,3,2,1], nums2 [3,2,1,4,7] 输出:3 解释:长度最长的公共子数组是 [3,2,1] 。 示例 2: 输…...

XML布局文件与常用View组件

XML布局文件与常用View组件 一、基础知识 1.1 XML布局简介 Android应用的用户界面是由View和ViewGroup对象的层次结构组成的。每个ViewGroup都是一个可以包含View对象的容器。XML布局文件提供了一种类似HTML的方式来描述这种视图层次结构。 1.2 常用布局属性 <!-- 常用…...

C# | 委托 | 事件 | 异步

委托&#xff08;Delegate&#xff09;和事件&#xff08;Event&#xff09; 在C#和C中&#xff0c;委托&#xff08;Delegate&#xff09;与事件&#xff08;Event&#xff09;以及函数对象&#xff08;Function Object&#xff09;是实现回调机制或传递行为的重要工具。虽然…...

android .rc文件

Android .rc 文件的用途 在 Android 系统中&#xff0c;.rc 文件主要是 init 脚本&#xff0c;用于定义和配置 Android 系统的启动过程。.rc 文件的扩展名通常为 .rc&#xff0c;例如 init.rc、init.vendor.rc、init.hardware.rc 等。这些文件是 Android 的 init 进程&#xf…...

python-leetcode-零钱兑换 II

518. 零钱兑换 II - 力扣&#xff08;LeetCode&#xff09; 这个问题是 完全背包问题 的一个变体&#xff0c;可以使用 动态规划 来解决。我们定义 dp[i] 为凑成金额 i 的硬币组合数。 思路&#xff1a; 定义 DP 数组 设 dp[i] 表示凑成金额 i 的组合数&#xff0c;初始化 dp[…...

Sass 模块化革命:深入解析 @use 语法,打造高效 CSS 架构

文章目录 前言use 用法1. 模块化与命名空间2. use 中 as 语法的使用3. as * 语法的使用4. 私有成员的访问5. use 中with默认值6. use 导入问题总结下一篇预告&#xff1a; 前言 在上一篇中&#xff0c;我们深入探讨了 Sass 中 import 语法的局限性&#xff0c;正是因为这些问题…...

Kotlin中的数字

1、整数类型 Kotlin 提供了一组表示数字的内置类型。 对于整数&#xff0c;有四种不同大小的类型&#xff0c;因此值的范围也不同&#xff1a; 类型大小&#xff08;比特数&#xff09;最小值最大值Byte8-128127Short16-3276832767Int32-2,147,483,648 (-231)2,147,483,647 (…...

利用Postman和Apipost进行API测试的实践与优化-动态参数

在实际的开发和测试工作中&#xff0c;完成一个API后对其进行简单的测试是一项至关重要的任务。在测试过程中&#xff0c;确保API返回的数据符合预期&#xff0c;不仅可以提高开发效率&#xff0c;还能帮助我们快速发现可能存在的问题。对于简单的API测试&#xff0c;诸如验证响…...

【前端基础】Day 9 PC端品优购项目

目录 1. 品优购项目规划 1.1 网站制作流程 1.2 品优购项目整体介绍 1.3 学习目的 1.4 开发工具以及技术栈 1.5 项目搭建工作 1.6 网站favicon图标 1.7 网站TDK三大标签SEO优化 2. 品优购首页制作 2.1 常见模块类命名 2.2 快捷导航shortcut制作 2.3 header制作 2.4…...

FFMPEG利用H264+AAC合成TS文件

本次的DEMO是利用FFMPEG框架把H264文件和AAC文件合并成一个TS文件。这个DEMO很重要&#xff0c;因为在后面的推流项目中用到了这方面的技术。所以&#xff0c;大家最好把这个项目好好了解。 下面这个是流程图 从这个图我们能看出来&#xff0c;在main函数中我们主要做了这几步&…...

Linux搭建个人大模型RAG-(ollama+deepseek+anythingLLM)

本文是远程安装ollama deepseek&#xff0c;本地笔记本电脑安装anythingLLM&#xff0c;并上传本地文件作为知识库。 1.安装ollama 安装可以非常简单&#xff0c;一行命令完事。&#xff08;有没有GPU&#xff0c;都没有关系&#xff0c;自动下载合适的版本&#xff09; cd 到…...

Docker 学习(二)——基于Registry、Harbor搭建私有仓库

Docker仓库是集中存储和管理Docker镜像的平台&#xff0c;支持镜像的上传、下载、版本管理等功能。 一、Docker仓库分类 1.公有仓库 Docker Hub&#xff1a;官方默认公共仓库&#xff0c;提供超过10万镜像&#xff0c;支持用户上传和管理镜像。 第三方平台&#xff1a;如阿里…...

PHP之变量

在你有别的编程语言的基础下&#xff0c;你想学习PHP&#xff0c;可能要了解的一些关于变量的信息。 PHP中的变量不用指定数据类型&#xff0c;同时必须用$开头。 全局变量 可以在除函数外任意地方访问&#xff0c;如果需要在函数中访问要先获取 $x 111; function tt() {gl…...

centos和ubuntu下安装redis

1&#xff0c;判断环境是否有gcc gcc --version 如果未安装则执行 yum install -y gcc tcl 2&#xff0c;安装包下载,编译安装 cd /usr/local mkdir redis wget https://download.redis.io/releases/redis-4.0.11.tar.gz tar -xvf redis-4.0.11.tar.gz cd redis-4.0.11 编译 m…...

韩国互联网巨头 NAVER 如何借助 StarRocks 实现实时数据洞察

作者&#xff1a; Youngjin Kim Team Leader, NAVER Moweon Lee Data Engineer, NAVER 导读&#xff1a;开源无国界&#xff0c;在“StarRocks 全球用户精选案例”专栏中&#xff0c;我们将介绍韩国互联网巨头 NAVER 的 StarRocks 实践案例。 NAVER 成立于 1999 年&#xff0…...