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

MySQL 自增主键重置详解:保持 ID 连续性

目录

  • 前言
  • 正文

前言

爬虫神器,无代码爬取,就来:bright.cn

Java基本知识:

  1. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
  2. 【Java项目】实战CRUD的功能整理(持续更新)

表的主键设置为 AUTO_INCREMENT,系统会自动为每条新插入的数据生成一个自增的主键值

比如我的这个表:

CREATE TABLE sse_company_news (id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255),content TEXT
);

删除部分数据,甚至清空整张表,但自增主键的值却并不会重置,依然从原来的最大值基础上继续增长

本文篇幅较短,主要用于学习记录

在这里插入图片描述

正文

查询当前表的最大 ID:SELECT MAX(id) FROM sse_company_news;

通过 ALTER TABLE 命令修改 AUTO_INCREMENT 起始值
设置自增起始值:ALTER TABLE sse_company_news AUTO_INCREMENT = max_id + 1;

注意事项:

  • AUTO_INCREMENT 只能设置为比当前最大 ID 更大的值,否则将会报错或被忽略。
  • 适用于 InnoDB 和 MyISAM 表引擎。
  • AUTO_INCREMENT 不是“连续的保证机制”,而是一种“唯一且递增”的机制

拓展另外一个id的延伸

  • DELETE FROM sse_company_news;
    清空表数据,但 不会重置自增 ID。

  • TRUNCATE TABLE sse_company_news;
    效果等同于先 DELETE 再 ALTER AUTO_INCREMENT = 1,即:会重置自增 ID(前提是表结构中未设置过自定义起始值)

具体场景:

场景是否推荐手动设置 AUTO_INCREMENT
删除部分数据✅ 推荐保持 ID 连续,可用
全表清空并重建❌ 推荐直接使用 TRUNCATE
数据迁移后希望从更高起点插入✅ 需要手动设置
仅为美观而强制连续❌ 不推荐(自增值本质不保证连续)
http://www.lryc.cn/news/2392396.html

相关文章:

  • Vue Hook Store 设计模式最佳实践指南
  • 国产化Word处理控件Spire.Doc教程:通过Java简单快速的将 HTML 转换为 PDF
  • Spring AI 1.0 GA深度解析与最佳实践
  • Java求职面试:从Spring到微服务的技术挑战
  • 鸿蒙OSUniApp 开发的图文混排展示组件#三方框架 #Uniapp
  • WHAT - 学习 WebSocket 实时 Web 开发
  • 5G NTN卫星通信发展现状(截止2025年3月)
  • 【计算机网络】第2章:应用层—DNS
  • [Linux]虚拟地址到物理地址的转化
  • Linux线程入门
  • Kubernetes超详细教程,一篇文章帮助你从零开始学习k8s,从入门到实战
  • Docker基础 -- Ubuntu 22.04 AArch64 交叉编译 Docker 镜像构建指南
  • 【Elasticsearch】使用脚本删除索引中的某个字段
  • OpenHarmony平台驱动使用(二),CLOCK
  • 我们是如何为 ES|QL 重建自动补全功能的
  • Keepalived 配置 VIP 的核心步骤
  • 如何使用 Redis 快速实现排行榜?
  • MATLAB在逐渐被Python淘汰吗
  • Git 使用规范
  • 代码随想录第43天:图论4(最小生成树、拓扑排序)
  • AI智能体|扣子(Coze)搭建【自动生成超高质量PPT】工作流
  • list.sort(*, key=None, reverse=False)的两个问题
  • 文档处理的相关工具
  • java基础(面向对象进阶高级)内部类
  • 使用Python,OpenCV,Tesseract-OCR对自己的运动数据图片进行识别及分析,并使用Matplotlib绘制配速图出来
  • 小白的进阶之路系列之七----人工智能从初步到精通pytorch自动微分优化以及载入和保存模型
  • 创建型模式之 Builder (生成器)
  • 智能物资出入库管控系统
  • 鸿蒙OSUniApp 制作倒计时与提醒功能#三方框架 #Uniapp
  • 深入剖析网络协议:七层协议与四层协议详解