mysql删除数据记录后如何使自动编号从1开始

mysql删除数据记录后如何使自动编号从1开始,第1张

删除表重新建表,删除数据记录后,数据库的内存中是有记录的,我们一般看不到,但是数据的编号记录还存在的,所以就算把数据全删了,编号还是不会自动从1开始的。要么就手动改数据库的编号了。我 *** 作了这么久的数据库数据,也就总结了这么两条。希望有用!

create trigger Mytrg

on xiqujsj_ztbdl

for delete

as

begin

declare @Myii int

select @Myii=编号 from deleted

update xiqujsj_ztbdl set 编号=编号-1 where 编号>@Myii

end

--如果数据太多(达到10万条以上),update会慢,推荐不要用编号递增的方法

看看或许有用:

/-------------------------

问题描述:表中采用了自增列删除记录会出现断号的情况,但是又想让它删除后自动重新编号

方法1:采用函数+触发器的方法替代IDENTITY的功能,并且解决断号问题

方法2:采用存储过程(还是使用IDENTITY列)

------------------------------------/

--创建实现自增列的函数

create function f_getID()

returns int

as

begin

return(select isnull(max(id),0)+1 from tb)

end

go

--创建表

create table tb(id int primary key default dbof_getID() ,name varchar(20))

go

--创建触发器,在删除表中的记录时,自动更新记录的id,解决断号的烦恼

create trigger t_s_duanhao on tb

AFTER delete

as

declare @mid int

select @mid=min(id)-1

from deleted

update tb

set id=@mid,@mid=@mid+1

where id>@mid+1

go

--插入记录测试(只能一条条记录插入)

insert into tb(name) values('1哥')

insert into tb(name) values('2哥')

insert into tb(name) values('3哥')

insert into tb(name) values('4哥')

insert into tb(name) values('5哥')

insert into tb(name) values('6哥')

insert into tb(name) values('7哥')

insert into tb(name) values('8哥')

--显示插入的结果

select from tb

--删除部分记录

delete from tb where name in('1哥','4哥','7哥','8哥')

--显示删除后的结果

select from tb

/--测试结果

id name

----------- --------------------

1 2哥

2 3哥

3 5哥

4 6哥

--/

--删除环境

drop table tb

drop function f_getID

上网环境不方便写代码,就说说我的想法啊,很简单的。

“ASPNET中怎样对删除其中一条记录后的数据库中ID进行重新编号”

我认为你的想法是不管删,还是增加,id总是1,2,3。。。这样的连续的;

1首先你再数据插入的时候,要先把通讯录里的数据的行数查出来,select count() from [通讯录,然后ID插入直接为行数加一

2谈谈删除的时候。首先你把要删除的删除掉;然后读出剩余的ID项放入DataReader,接着定义定义一个变量,例如i=1,在while(DataReader。read())循环里,把该条id值更新为i,别忘了,i++。

循环结束即达到你的要求;

有疑问速追问,我在线

自动编号就是这样的,可以新建一个跟当前表同样格式的表格,把除自动编号以外的字段导入进去;或者清空数据,再压缩修复,自动编号也会重置

一般在实际应用当中,除了某些特殊情况,建议大家还是尽量避免补断号的处理,在数据库中编号只是作为一个唯一性标识,是给计算机看的,而不是给人看的,所以编号连续不连续没有什么实际意义。

以上就是关于mysql删除数据记录后如何使自动编号从1开始全部的内容,包括:mysql删除数据记录后如何使自动编号从1开始、sql 2000 触发器 数据库里面第一项是“编号”,当删除一条数据时,后面数据的“编号”自动减一、数据库中有一个字段存取记录的id,从数据库中删除一条记录后,id变为不连续,如何解决,VC++环境中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9727322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存