mysql中删除数据后,新增数据时id会跳跃,主键自增id不连续

这篇具有很好参考价值的文章主要介绍了mysql中删除数据后,新增数据时id会跳跃,主键自增id不连续。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言:
在使用MySQL数据库时,有时候我们需要删除某些记录,但是删除记录后可能会导致表中的id不再连续排序。
如何实现删除记录后让id重新排序的功能。

如图:
mysql删除数据后id增加的会跳跃,MySQL,mysql
删除数据后,中间的id不会自动连续。
下面有两种方法进行重新排序:
方法一:
删除表中id,重新添加id字段:


ALTER TABLE test DROP id;
 
ALTER TABLE test ADD id int(20) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST

其中,first表示将id字段放到第一个位置,test为数据库名

方法二:

SET @i=0;
 
UPDATE test SET `id`=(@i:=@i+1); 
 
ALTER TABLE test AUTO_INCREMENT=1;

其中:
设置变量i = 0
把表中的id字段都重新修改一遍,从1开始
设置自增值为1,防止下次插入数据发生自增字段不连续的情况
test为数据库名

修改后数据:
mysql删除数据后id增加的会跳跃,MySQL,mysql文章来源地址https://www.toymoban.com/news/detail-830193.html

到了这里,关于mysql中删除数据后,新增数据时id会跳跃,主键自增id不连续的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mybatis实战:四、insert 用法(普通插入、返回主键自增的值)

    1.UserMapper.xml 1.指定特殊数据类型 2.<insert >元素,这个标签包含如下属性  2. UserMapperTest  1.只插入一条数据 2.回滚(不写入数据库) 3.插入后判断是否为空(为空/不为空,抛异常) 3.UserMapper 方法一: 使用 JDBC 方式返回主键自增的值  方法二: 使用 selectKey 返回主键的值

    2024年02月07日
    浏览(44)
  • MySQL数据库——MySQL AUTO_INCREMENT:主键自增长

    在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。 通过给字段添加  AUTO_INCREMENT  属性来实现主键自增长。语法格式如下: 默认情况下,AUTO_INCREMENT 的初

    2024年02月11日
    浏览(34)
  • 如何在Insert插入操作之后,获取自增主键的ID值

    MyBatis中,在大多数情况下,我们向数据库中插入一条数据之后,并不需要关注这条新插入数据的主键ID。我们也知道,正常在DAO中的插入语句虽然可以返回一个int类型的值,但是这个值表示的是插入影响的行数,而不是新插入数据的主键ID。 近期有一个需求,核心是保存一些

    2024年02月09日
    浏览(46)
  • spring boot集成mybatis-plus——Mybatis Plus 新增数据并返回主键 ID(图文讲解)

     更新时间 2023-01-10 15:37:37 大家好,我是小哈。 本小节中,我们将学习如何通过 Mybatis Plus 框架给数据库表新增数据,主要内容思维导图如下: Mybatis Plus 新增数据思维导图 为了演示新增数据,在前面小节中,我们已经定义好了一个用于测试的用户表, 执行脚本如下: 定义一

    2024年02月02日
    浏览(52)
  • Mybatis 批量新增 只返回第一主键ID 其他返回null

    出现 问题 是加 on duplicate key update 受了影响, 去掉 on duplicate key update代码 ON DUPLICATE key update是根据索引字段是否重复来判断是否执行,如果重复则执行update,否则则执行insert。 优先级主键唯一索引 当主键重复时则执行update 当主键不重复,唯一索引重复时也执行update 当主键

    2024年02月16日
    浏览(36)
  • Mysql 自增主键设置以及重置自增值

            在创建需要带自增主键的表结构时,在主键上增加AUTO_INCREMENT,同时可以设置主键的启始值AUTO_INCREMENT=1。

    2024年02月12日
    浏览(28)
  • mysql如何自定义自增主键值,以及所遇到的不生效问题

    最近有一个需求,要求对某些数据的数据库主键id格式化,要求id为(202311080000)的形式去自增,可以在get请求获取到这些数据时在请求路径上看到格式化的id,但是之前数据id有大于202311080000数值的,导致自增的主键值并没有生效(即使删除相关数据) 如何自定义自增主键值 第一种通过命

    2024年04月15日
    浏览(36)
  • MySQL 自增 ID 默认从 1 开始,如何设置自增 ID 从 0 开始

        MySQL 是一种关系型数据库,它是世界上最流行的关系型数据库之一。在 MySQL 中,自增是一种非常有用的功能,它可以自动给主键赋值,并保证每个主键是唯一的。然而,许多人不知道的是,MySQL 默认情况下从 1 开始自增,这并不总是适合所有情况。     在 MySQL 中,我们

    2024年02月11日
    浏览(41)
  • 面试官:MySQL 自增主键一定是连续的吗?大部分人都会答错!

    MySQL版本:8.0 数据库表:T (主键id,唯一索引c,普通字段d) 如果你的业务设计依赖于自增主键的连续性,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不能保证连续递增。 推荐一个开源免费的 Spring Boot 实战项目: https://github.com/javastacks

    2024年02月06日
    浏览(37)
  • mysql怎么查指定表的自增id?

    要查看MySQL表的自增ID(Auto Increment ID),你可以使用 SHOW TABLE STATUS 命令。以下是一个示例: 替换\\\'your_table_name\\\'为你想查询的表名。这条语句会返回表的一些基本信息,其中 Auto_increment 字段就表示下一次插入时的自增ID值。 请注意,此命令需要有对应数据库的 SELECT 权限才能执

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包