添加了 @TableId(type = IdType.AUTO) 但仍生成超大 ID

紧急排查数据库表结构(核心,必须执行)

首先通过 SQL 验证dish_category表的id字段配置,这是问题的根源:

  1. 连接你的数据库,执行以下 SQL 查看完整表结构: sql

    复制代码
    -- 查看dish_category表的详细创建语句,重点关注id字段
    SHOW CREATE TABLE dish_category;
  1. 问题的核心元凶 :表结构末尾的AUTO_INCREMENT=2011257341079490564,表示数据库的自增序列当前起始值就是这个超大数字 ,后续新增数据时,ID 会从这个值开始连续递增(比如下一条就是2011257341079490565),自然还是超大 ID。
  2. **为什么初始值会这么大?**大概率是之前使用雪花算法插入过数据,或手动插入过超大 ID 值,导致数据库的自增序列被 "拉高",即使后续切换为数据库原生自增,也会从这个超大初始值继续递增,不会自动重置。

二、解决方案:重置自增序列初始值(一步到位解决超大 ID)

核心操作是AUTO_INCREMENT初始值重置为合理的数值,让后续新增数据的 ID 从连续小数字开始递增,具体分两种场景执行 SQL:

场景 1:表中无重要数据(或已备份,想从 1 开始递增)

直接将自增初始值重置为1,后续新增数据的 ID 从 1 开始连续排列:

sql

复制代码
-- 重置dish_category表的自增初始值为1
ALTER TABLE dish_category AUTO_INCREMENT = 1;
相关推荐
weelinking13 小时前
【产品】00_产品经理用Claude实现产品系列介绍
数据库·人工智能·sql·数据挖掘·github·产品经理
2301_8039346114 小时前
Go语言如何做网络爬虫_Go语言爬虫开发教程【指南】
jvm·数据库·python
秋915 小时前
windows中安装redis
数据库·redis·缓存
Cosolar15 小时前
万字详解:RAG 向量索引算法与向量数据库架构及实战
数据库·人工智能·算法·数据库架构·milvus
想唱rap15 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
小江的记录本15 小时前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展
SeaTunnel15 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
凯瑟琳.奥古斯特16 小时前
数据冗余与规范化的本质[数据库原理]
开发语言·数据库·职场和发展
_ku_ku_16 小时前
数据库系统原理 · SQL 数据定义、更新及数据库编程 · 自学总结
数据库·oracle
Mortalbreeze16 小时前
深度理解文件系统 ---- 从磁盘存储到内核存储
大数据·linux·数据库