永发信息网

sql 自动增长列的问题

答案:6  悬赏:50  手机版
解决时间 2021-04-21 09:17

id name

1 樊星
2 杨勇
3 小易
4 刘熙妍

5 张三

id为自动增长列,但是当我删掉第二条数据后就变成

1 樊星
3 小易
4 刘熙妍

5 张三

怎样能使他是这样的

1 樊星
2 小易
3 刘熙妍

4 张三

建表的时候应该怎么设置ID这列?

最佳答案

SQL是不会自动修改自动增长列的,用触发器应该是可以的。。。。- -


要是修改这个,数据很多的时候修改就很浪费资源了。。。。。。- -!要是有几千万条数据,删除一条就要修改其他的999999条数据了,你北大青鸟怎么读的

全部回答

数据库中标识列没法实现,除非不用标识。并且写触发器,其实他的不连续也没什么关系。

并不建议写触发器。当只有几条数据的话效率上倒还行。若是上万条数据甚至更多的情况,你要是删除第一条数据,你可以想象,要修改多少条记录。

不能用自动增长,只能自己写更新

--> 测试数据:[tb] if object_id('[tb]') is not null drop table [tb] create table [tb]([id] int,[name] varchar(6)) insert [tb] select 1,'樊星' union all select 2,'杨勇' union all select 3,'小易' union all select 4,'刘熙妍' union all select 5,'张三' ---------------- delete from tb where id=2

alter table tb drop column id

alter table tb add id int not null identity(1,1)

select id,name from tb

自动增长列就是这样的。

可以这样。。。

1. 查询得到(或者已经知道)要删除的 ID 值,

2.删除该行数据

3.对ID大于该ID值的列做更新,使ID=ID-1

那就不能用自增长了 要用触发器或SQL语句处理来实现
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
那位能告诉我 下载源码之后 怎么改啊 文件夹
英语面试对话范文!大约3分钟!
上海哪里能办到广西身份证呢?
天津财经大学是一本吗,浙江财经大学的信用管
妇科炎症那种最严重呢?
秀观村这个地址在什么地方,我要处理点事
濮阳的电池厂在什么位置?现在**吗?我已从事
暗恋最心酸的一句话,你听过最心酸的一句话是
怎样去爱,一个不爱你的人?
男人开红色的车合适吗?
怎样帮我的好朋友学好英语?
有几百元的电脑吗
用电信卡怎么开QQ旋舞紫钻?
电脑没有小喇叭了,提示没有活动混音器,要安
台湾风味手撕鸭(时光街店)我想知道这个在什么
推荐资讯
有点难度的对联!
买了只合过的BB,找不到原配怎么办?
谁有好看的电影网址,要免费的!
中国总共有多少个男女明星?不论大小、不算死
李水京或(李秀景)主演的哪部电视剧好看?
佳明工程机械租赁有限公司我想知道这个在什么
北京的职业摔交的场所具体位置在哪?
请问现在养羊蓄牡局还有纸标支持吗
万能摄像头驱动
电脑装什么系统好
兽态犀牛到底怎么捉啊
有哪些连续剧是关于杨贵妃的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?