SQL高级操作之三——删除数据(删除数据后如何修改主键自增长值使得新增数据后自增长id仍然连续)

SQL Server ID 自增不连续、删除任意列数据后ID不连续的解决方案。 在 SQL Server 中,删除一条数据不会导致自增列重置。自增列的值是根据表中已有的最大值自动递增生成的,而不是根据表中已删除的行数来计算的。因此,即使删除了一些行,自增列的下一个值仍然会基于表中已有的最大值来计算。如果想重置就需要删除表数据,重置自增ID。有多种方法,我统一使用T-SQL编写。 阅读详情

删除数据

 

1、 删除数据的时候尽量不要全部删除,应该使用where进行 判定;

2、 删除数据的时候可以使用limit来限制要删除的具体数量

Delete删除数据的时候无法重置auto_increment(可以看看)

(1)创建带自增长主键的表

(2)插入三条数据

(3)把id为2,3的两行数据删除然后再新增一条,然后再新增一条数据,我们知道再次新增时,新增行id会变为4

为什么?因为id自增长此时为4,通过查表结构可以看到auto_increment为4

那我要删除数据后自增长值变为2要怎样做,我前面列属性那篇有讲

可以像前面修改字符集那样修改自增长的值,但是自增长的值必须大于当前自增长列最大值(此处为1),否则修改无效

语法:Alter table 表名 auto_increment = 值;

若想把表内数据全部删除,然后自增长恢复为1,

使用Truncate 表名  就等价于 先drop表  然后再 以同样表结构create

【MySQL】MySQL数据库主键自增长删除后ID不连续的问题及其解决方案 MySQL数据库主键自增长删除后ID不连续的问题及其解决方案 阅读详情

相关推荐

[毕设辣手摧花]数据库主键设置自增,当删除若干行后再添加数据,主键id不连续(留坑)

方案B(虚拟连续编号) 完全适用于已经存在不连续ID的情况,它会在查询时动态生成连续的显示编号(display_id),而不会修改实际数据库中的主键ID。如果原有 selectAll() 已满足业务逻辑,无需额外Service层封装。:删除中间记录后,后续新增记录的ID会继续递增,不会填补空缺。LabMapper.java(Mapper接口)LabService.java(服务层,可选):部分成功插入时,已使用的ID不会被回收。// 在查询时添加行号(不改变实际ID)Lab.java(实体类)

weixin_69026383的博客 1025

解决Mysql数据库表id字段自增后,删除记录而id字段无法恢复到初始值的问题

<br />1.首先介绍一下TRUNCATE关键字的意义<br /><br />    TRUNCATE TABLE TableName是一种快速的,无日志记录的,删除表中所有记录的方法。<br /><br />2.TRUNCATE和DELETE的区别<br /><br />    TRUNCATE TABLE在功能上与不带WHERE子句的DELETE语句相同:二者均删除表中的全部行。但TRUNCATE TABLE比DELETE速度快,且使用的系统和事务日志资源少。<br /><br />    DELET

huminghai的专栏 4027

用户存续期价值评估CLV(二) BG/NBD Model python模拟

BG/NBD Model …继续 想象每一个客户有两个硬币,一个“Buy Coin"控制客户购买的概率;一个"Die Coin"控制客户流失、不再购买的概率。 前面假设了客户的交易次数服从泊松过程: 在一年中的每个月,客户都以抛硬币的方式来决定是否购买。我们所观察到的购买次数取决与泊松分布的参数 ????。 %matplotlib inline import numpy as np impor...

weixin_43171270的博客 3426

sql:表中数据全部删除之后,重新插入时,从1开始增加

数据库中设置了自增列,有时候需要清楚数据库从新录入数据.最常见的做法就是使用sql语句"delete表明名"或是直接选中数据,然后删除数据.但是再次插入数据的时候,你就会发现自增列会从上次删除数据的最大值的下一个值开始,而不是从1开始的.有没有一种感觉,感觉挺苦恼的. 1、方法一: 直接从表中,将需要自增的字段进行修改,把自增这个选项进行取消,然后保存,保存之后再次对这个字段进行自...

768

Arcgis 10.3 与 ArcGIS Engine 10.3 安装与破解

Arcgis 10.3 与 ArcGIS Engine 10.3 安装与破解

weixin_52127098的博客 4726

【没有网络,安装python包】如何从 PyPI 下载并安装 Plotly 的离线包

在某些情况下,您可能需要在没有互联网连接的环境中安装 Python 包,例如在飞机上、在某些受限制的网络环境中或在需要离线安装的场景下。以下是如何在 PyPI(Python Package Index)下载 Plotly 包并进行离线安装的详细步骤。

赖德发的博客 1104

MySQL 自增长主键 在删除数据后依然接着删除的数据增长

如题,比如有主键为1,2,3的三条数据,删除2,3两条数据后再新增数据,主键是从4开始的。原因是主键是唯一的,绝对不能出现重复。比如有100条数据,主键为1到100,删除了主键为50的数据之后,还剩99条数据,这个时候再新增数据,主键是要从101开始,而不是第100条数据的100,不然会重复,有两个主键为100的数据。不过可以手动修改。1,删除原有主键:ALTER TABLE `table_nam...

KSHATR1YA的博客 1万+

数电-基于FPGA的自动售货控制系统设计

本次数电的课程设计是设计一款基于FPGA的自动售货控制系统,因为手上暂时没有FPGA的板子,所以先采用proteus仿真进行设计,观察系统效果,等之后FPGA板子下发,再移到quartus上调试和下载。同样是自己第一次自主设计电路系统,可能在功能上不完整或者逻辑上有错误,大家多多包涵,欢迎沟通交流。

gg1067的博客 2293

mysql递增列数据删除后还继续递增怎么处理

当您从表中删除行时,删除的行的自增 ID 将被释放,以便将来添加新行时可以重用这些 ID。这将使自增 ID 继续从 13 开始递增,因为表中存在两行数据,ID 分别为 1 和 2,而删除的最大 ID 为 10。命令插入新行来保留自增 ID 继续递增。您可以指定要插入的行的 ID,以便自增列从该 ID 继续递增。如果希望删除自增列的所有数据,但保留该列作为自增列,则可以使用。这将删除表中的所有行,并将自增 ID 重置为 1。这将使自增 ID 继续从 11 开始递增。

qq_44370158的博客 1745

手把手教你用Python实现ITRS与GCRS坐标转换(附完整代码)

本文详细介绍了如何使用Python的Astropy库实现ITRS与GCRS坐标转换。文章从环境配置、坐标对象构建入手,深入解析了transform_to方法背后的转换矩阵与地球定向参数管理,并通过卫星地面轨迹计算实战案例,帮助开发者掌握高精度空间坐标转换的核心技术与工程实践。

weixin_28335283的博客 81

opencv去除印章痕迹

今天看到一个很有意思的程序,就是去除票据上的红色印章,觉得很有意思,就把它抄过来记录一下,同时自己也开了一下脑洞。 原来的程序来自:https://www.cnblogs.com/skyfsm/p/7638301.html 可以看到图像效果很不错,下面是源码实现: #include &lt;iostream&gt; #include &lt;opencv2/imgproc/imgpro...

zeng_haoyu的博客 7959

SQL Server ID 自增不连续、删除数据后再次插入ID不连续

背景:当我们使用SQL Server 进行数据库操作时,经常会把 Table 的 ID 设置成主键自增 PRIMARY KEY IDENTITY,但是这样做存在一个问题就是 当我们删除一行数据后,再次添加后会看到ID的顺序不连续,如下所示。 问题还原: 创建表 并添加数据 DROP TABLE IF EXISTS Person create table Person( PersonId int PRIMARY KEY IDENTITY , PersonName NVARCHAR(255) not

lizhengze1117的博客 1万+

【工具篇】万字长文拆解 Otter.ai:语音转文字领域的「瑞士军刀」是如何炼成的?(附保姆级教程)

但需要注意,2024年欧盟已出台《AI转录伦理指南》,要求所有录音需获得参与者明确授权。举个真实案例:某硅谷创业团队用Otter.ai记录产品评审会,系统自动标红争议点并生成待办事项,会议效率提升40%。AIGC技术原理、 实时转录解析、 定价策略分析、 语音算法拆解、 多平台兼容测试、 深度学习框架、 空间计算专利。——无论是跨国会议、课堂讲座还是深夜灵感,它都能实时生成带时间戳的文本记录,准确率高达95%。(此处建议插入Otter.ai会议转录动图,展示实时字幕生成效果)(数据来源:综合参考文献整理)

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1259

Mybatis中的批量修改,批量删除,批量新增,和新增后返回主键

1.批量修改,批量删除,批量新增 1)批量更新 &lt;update id="dwdatalink_delete_task_instances_byids" parameterType="java.util.Map"&gt; UPDATE data_link_task_run SET is_deleted = '1', sys_update = C...

qq_28060549的博客 4374

电商平台系统需求规格说明书(示例)

​​电商系统​​:指本文件所描述的集商品展示、销售、支付、物流跟踪、用户管理等功能于一体的综合性在线购物平台。​​API​​:应用程序编程接口(Application Programming Interface),用于实现系统各模块之间或与外部系统之间的数据交互和功能调用。

跟佟格湾一起学习计算机知识吧~ 1265

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

关于MybatisPlus使用@TableId(value = “id“, type = IdType.AUTO)注解使主键id自增长无效的问题

异常 设置@TableId注解后,还是无法做到数据库的主键自增长。 原因 不清楚,解决方法也比较玄学。 解决 在数据库中将该表删除掉,重新创建表并赋予数据,当然实体类还是要在id字段上添加@TableId注解 还可以参考这位@TableId(value = “id“,type = IdType.AUTO) 设置后无效的解决办法的解决方式,也比较玄学。 思考 好吧,其实也不玄学,说下自己的思考。 我们创建表的时候,表id字段是设置自动增长的,并且主键id也是正常的,如下(

二木成林 3万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

mysql 按顺序 自增长_mysql自增长主键,删除数据后,将主键顺序重新排序

用数据库的时候,难免会删除数据,会发现设置的主键增长不是按照正常顺序排列,中间有断隔比如这样。以我这个情况举例处理方法的原理:删除原有的自增ID,重新建立新的自增ID。ALTER TABLE `news` DROP `NewsID`;ALTER TABLE `news` ADD `NewsID` int NOT NULL FIRST;ALTER TABLE `news` MODIFY COLUMN...

weixin_39637700的博客 1365

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mysql 主键id不连续的解决办法

mysql解决删除(或同步)数据后,主键不连续问题 1.去掉id的主键,自动递增(在navicate可用鼠标点击操作) 2.增加一列idd作为主键,设置为自动递增 3. -- 若让 第一行从id=1开始(否则自行改变i的初始值) SET @i=0; UPDATE table_name SET `id`=(@i:=@i+1); 注意:主键id只针对int类型,bigint不可以使用。但是可以先将字...

用数据说话 5932

新增(插入)主键ID,发生主键ID自增不连续问题

问题如上图 事先说明一下,如果你的数据库没有特别的要求的话,这并不会对你的数据库以及其他数据有影响。 问题疑难分析:为什么会出现这种主键ID不连续自增的情况呢,主要因为插入一些无用的数据占去了位置,然而当插入成功后便接着插入失败的数据继续自增操作,当然了,插入失败的数据肯定不会显示被你发现的,只要ID没有出现重复就都不会对其他有任何影响。 但如果你想让它恢复原来的连续自增,那就往下看文章。 开发工具:SQL server 问题发生的环境:在进行多表新增的时候。 在此之前测试删除不连续自增的..

m0_57448314的博客 3564

SQL新增、修改和删除数据

SQL的新增、修改和删除数据一、使用INSERT 语句表中添加新行(1)INSERT语句的基本形式:(2)将显式值插入标识列(3)INSERT语句的多行插入(4)INSERT INTO SELECT语句二、UPDATE语句三、DELETE语句 一、使用INSERT 语句表中添加新行 (1)INSERT语句的基本形式: INSERT INTO table_name (column_list) VALUES (value_list); 解析:1)table_name 是要新增行的表明; 2)column_l

weixin_50179223的博客 1万+

mysql新增主键列_Mysql 增加主键或者修改主键的sql语句操作

添加表字段alter table table1 add transactor varchar(10) not Null;alter table table1 add id int unsigned not Null auto_increment primary key修改某个表的字段类型及指定为空或非空alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];a...

weixin_33066321的博客 1828

mysql数据库删除一条数据之后,主键id不连续的问题解决

数据库为了保证主键的一致性,当某个主键值被占用了之后,哪怕这条数据被删除了,这个主键依然不可用,所以就导致会出现主键不连续的问题。

qq_43813351的博客 3056

Sql Server批量删除主键,添加自增长主键

最近遇到一个问题,一个数据库中有很多相近的表,已经有数据了,但是需要

小飞鱼的blablabla... 3773

怎么取消主键自增长的问题(SQL Server)

以前经常会碰到这样的问题,当我们删除了一条自增长列为1的记录以后,再次插入的记录自增长列是2了。我们想在插入一条自增长列为1的记录是做不到的。我们可以通过设置SET IDENTITY_INSERT <table_name> ON;来取消自增长,等我们插入完数据以后在关闭这个功能。实验如下: 1 use TESTDB2 2 --step1:创建表 3 create tab...

weixin_30483013的博客 2435

SQL Server 设置自增长主键

Microsoft SQL Server 设置自增长主键

m0_63969219的博客 5627

数据库新增修改和删除

数据库新增修改和删除 想必在现行的世界中数据很是重要,数据数据。做it这一行得首先我首先想到的就是数据库–SQL Server 2014 Management Studio 一个很实用的处理数据的软件。接下来呢 小编就来简单讲解一下数据库新增修改和删除。那就跟着我一步一步·来 首先肯定是要打开这个软件 就是上面这个图标的软件。 看着这些数据是不是有搞一搞的念头呢 哈哈 那么小编就来带着小伙伴一...

weixin_44540309的博客 9068
上一篇: SQL高级操作之二——更新数据(带条件并限制个数的更新)
下一篇: xxxmapper.xml中获取oracle中表的自增长逻辑主键
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值