Mysql设置主键自增,删除数据后,主键id依然从删除位置增加

您所在的位置:网站首页 arraylistclear清空数据清空不掉 Mysql设置主键自增,删除数据后,主键id依然从删除位置增加

Mysql设置主键自增,删除数据后,主键id依然从删除位置增加

2023-10-03 23:39| 来源: 网络整理| 查看: 265

Mysql数据库添加主键后,删除数据,数据依然排序显示

提示:平常操作数据库时,我们对主键是不需要进行这个操作的,但是测试数据时,有时就是需要这样的操作也是存在的:

tips: 文章较长,关键操作:删除操作后,alter table 表名 AUTO_INCREMENT=N; (N代表主键从什么位置开始排序)

ps:本文的编写是为了,记录自己在学习Mysql数据库时的一些事项

# 一、Mysql数据库的主键

问题原因:Mysql数据库的主键是支持自增的 ,此时我们不断向数据库中插入数据,主键的值便会不断的自增,此时我们删除某一个数据,并不会扰乱主键的递增

二、Mysql主键案例演示 1.给表格添加主键自增

这里我们有一张studentinfo表,添加stuno为主键,代码如下:

范式:alter table 表名 change 列名 列名 数据类型 primary key auto_increment; alter table studentinfo change stuno stuno int primary key auto_increment;

在这里插入图片描述

2.添加数据

我们随便添加几个数据, 因为我们设置了主键自增,那么我们默认插入的数据 stuno是会自己递增,我们不用管 会发现后面添加的三个数据,stuno是自己按照5007-5009排序的 代码如下:

insert into studentinfo(stusex,stuname) values(0,"小二子"); insert into studentinfo(stusex,stuname) values(1,"小李子"); insert into studentinfo(stusex,stuname) values(1,"杨二");

这里我们设置了主键自增,并且添加三条数据

3.删除数据

下面我们删除数据后查看效果 代码如下:

delete from studentinfo where stuno=5007; delete from studentinfo where stuno=5008; delete from studentinfo where stuno=5009;

这里我们已经删除了原来添加的三个数据

4.再次添加数据

这里我们继续添加数据,便会发现数据,并不会按照5007继续排序 Jack的stuno是5010,并不是从5007开始排序 代码如下:

insert into studentinfo(stusex,stuname) values(0,"Jack");

会发现Jack的stuno是没有经过排序的

5.通过下面的代码修改

每次我们每次进行删除数据操作后,都需要在终端执行一次下方的代码语句 代码如下:

范式:alter table 表名 AUTO_INCREMENT=N; delete from studentinfo where stuno =5010; alter table studentinfo AUTO_INCREMENT=5006;

在这里插入图片描述

6.增加数据查看

执行代码后,添加数据,查看结果 此时的Jack的stuno便是我们想要的5007 代码如下:

insert into studentinfo(stusex,stuname) values(0,"Jack");

在这里插入图片描述

总结

提示: ①:需要执行的语句为:范式:alter table 表名 AUTO_INCREMENT=N; ( ‘N’:代表着主键需要从那个数据开始排序) ②:代码中的大小写 (貌似并不区分,我测试了几个大小写情况,添加数据都正常) ③:每次进行删除操作后,如果想按顺序排序,那么都必须要执行一次语句 ④:这段代码,执行在删除操作之后



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3