找回密码
 注册
搜索
查看: 6487|回复: 2

请教一下mysql中的自增字段

[复制链接]
发表于 2006-12-25 21:52:31 | 显示全部楼层 |阅读模式
许多的mysql表中都有个自增字段,一般用来作为索引或者标识,类型一般都是给int 11.
每次插入数据的时候这个字段都是由系统分配一个唯一的值,请教的问题:假设目前表中有5条记录,索引字段的值也分配到了5,
那么我现在把第三条记录删除了,也就是自增字段为3的记录没了,那么在日后的某一个时刻在向该表中插入记录的时候,系统会不会重新自动以3作为自增字段值来插入记录到数据库.
发表于 2006-12-26 12:50:17 | 显示全部楼层
不会,因为表中有一个自动编号的值,每次只会自动增加指定的值(比如1)。
回复

使用道具 举报

 楼主| 发表于 2006-12-26 14:26:33 | 显示全部楼层
记得在图形江湖的pchat_pet表中有一个自增字段"id",发现这个id值可以复用,也就是说以往有一条记录他的id值是3,后来这条记录被删除了,然后在某一时刻,当用insert 语句再向pchat_pet插入记录的时候,发现这个id值仍然为3(也就是自动增加型字段的复用).
请问这种自增字段值的复用是否由mysql系统自身内部自动控制的呢?
这个问题的提出是因为要对某个表进行频繁的删除和插入操作,这个表中有一个自增字段,如果进行操作的特别频繁,必然会导致这个自增字段越来越大,但如果系统能够自动实现自增字段值的复用,那么将在相当的程度上使这个自增字段值不会变得非常大(因为经常有删除记录的操作).
怕没描述清楚,举个粒子,假设有个表,有两个地段(1) id  自增字段 (2) sName:varchar 255
这个表中加了以下几条记录:
1     骆驼
2    山羊
3    鹿
4    大象

现在我用delete语句把2号记录(山羊这条)给删除了,那么当以后insert记录的时候,
insert into table_sample (sName) values("猴子");

还有没有可能id值会等于2了?

[ 本帖最后由 狂想 于 2006-12-26 14:41 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-5-4 22:54 , Processed in 0.014206 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表