解决数据库delete数据后,删除的id没有继续键入值的问题

本文介绍了一种常见的数据库问题——ID自增长断裂,并提供了解决方案。通过使用SQL语句删除断裂ID并重新设置自增长ID,可以确保数据库的连续性和高效运行。

在使用数据库时,常见这种情况,当使用delete语句删除目标数据记录后,数据会直接存储时id会自动跳转到已经删除的数据记录后面再实现自增长。

//删除插入后id出现断裂的记录。如下图id为6的记录;
delete from tb_hero where heroId=断裂的id;
//设置自动增长的id,下一个出现的id会自动从设置的id后增长,
alter table tb_hero auto_increment=参数为已经存在的,在断裂之前的那一个id;

解决的办法:
(重新设置自增长Id)

alter table tb_hero AUTO_INCREMENT=1;

如下所示:id的增长出现了断裂
在这里插入图片描述

不同类型的数据库有不同的删除方法和操作: - **SQL Server**: - **图形化操作**:选择要删除的库,鼠标右键选择“删除”,点击“确定”。需要注意系统数据库(msdb、model、master、tempdb)无法删除删除数据库后应立即备份master数据库,因为删除数据库将更新master数据库中的信息[^1]。 - **使用ALTER DATABASE**:文档未详细说明此方法具体操作步骤,但提到了这种删除库的方式[^1]。 - **MySQL**: - **方法一**:在cmd下输入“mysql -u root -p”,回车后键入密码,进入mysql命令行,输入“drop database test;”,回车后,输入“show databases;”即可查看该数据库是否被删除(此处“test”为示例数据库名)[^3]。 - **方法二**:在cmd下输入“mysqladmin -u root -p drop test”,回车后键入密码,再回车,会提示确认是否删除当前数据库,选择‘y’,回车后正常返回到当前系统命令行[^3]。 - **MongoDB**:删除集合中的文档可以使用deleteOne()函数和deleteMany()函数。deleteOne()函数可以删除和它匹配的一个文档(有多个匹配的文档只能删除一个),而deleteMany()函数可以删除匹配的所有文档[^4]。 - **逻辑删除(适用于一般项目)**:在做项目时一般不会使用真删除操作,基本使用假删除,会在数据表中添加一个类似于“status”的字段,用于标记记录是否显示可用,这种删除称之为逻辑删除,其本质是修改。语法例如“DB::table(xxx) -> where() ->delete();” 、“Member::where() -> delete();” ,以删除id<2的记录为例,返回表示受到影响的行数 [^2]。 ### 代码示例 #### MySQL删除数据库示例 ```sql -- 假设要删除名为 'test_db' 的数据库 DROP DATABASE test_db; ``` #### MongoDB删除文档示例 ```javascript // 删除集合中匹配条件的一个文档 db.collection.deleteOne({ field: 'value' }); // 删除集合中匹配条件的所有文档 db.collection.deleteMany({ field: 'value' }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值