自动编号的字段在删除记录后编号不连续

自动编号的字段在删除记录后编号不连续,第1张

自动编号的字段在删除记录后编号不连续,第2张

问题:

删除记录后,自动编号的字段数量不连续
。例如,最初有10条记录。如果删除第二条记录,序列号2将变为空
。当表中的一条记录被删除后,后续的记录如何自动重新编号?

回答:

关于自动编号和数据库压缩
,你必须明白,自动编号(长整数)的目的不是使记录编号连续,它的用途是2
1,识别记录的性质
2,识别记录的生成顺序
。基于以上原因,你想用自动编号字段来表示连续记录编号的想法本身就是错误的。

连续记录号有几种表达方式:
1。创建一个专用于存储记录号的字段。例如,RecordNo
在添加记录时可以使用MAX(recordNO)+1。
当我们想要删除一条记录时,比如这条记录的recordNo=6,我们使用

从记录号=6的表中删除

来做吧。这将产生空数,然后再次使用它。

更新表集合recordno=recordno-1,其中recordno>6

你可以。

2.记录号的数据不存储在表中,而是由sql查询自动生成。

选择[id],a,b,c,(从表2中选择count (*),其中表2。[id]其中[id]字段是自动编号字段。

问题:

在access2000中,有一个自动编号的字段ID。ID的现有值分别为1、2、3、4、5、6、7。删除6,7,压缩数据库,添加新记录后,在不同的电脑上会出现如下不同的情况:
1,新ID为6,7,8,9

当ID为1,2,3,4,5,6,7,删除4,5,压缩数据库,添加新记录后,不同的情况会在不同的电脑上出现如下:
3,新ID为4,5,然后是6(错误,因为主键不能重复)
4。。
哪种情况是正常的,还有哪些不正常的原因?谢谢大家!

回答:

你说的这些情况都是正常的。

1.自动编号由JET engine设置
2。自动编号将自动用作主键,并且会有一个不重复的索引
3。您可以将索引更改为none
4。自动编号的初始值和步长值可以通过程序或其他方法改变。不是固定的
5。虽然你更改了起始值和步进值,但是如果新生成的值违反了“主键”或“索引”的约束,就会产生错误
6。默认情况下,即使删除了记录,也不会恢复该记录的自动编号。

以下是对形势的分析
1。您通过使用压缩修复、更新、更改表等方法更改了初始值。
2。默认情况下是这样的
3。因为压缩修复,初始值又从4开始,但是增加到6时,数字6已经存在于原始记录中,违反了主键约束,所以出现错误。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 自动编号的字段在删除记录后编号不连续

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情