自增字段作为主键的问题

shijies 2009-05-26 02:40:16
如果选取一个自增字段作为主键,在删除一个记录后,数据表的主键编号是否重新排序?例如原来一个表中有6条记录,若删除表中的第3条记录,原来的第六条记录现在算第5条还是第6条?
...全文
178 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuui 2009-05-30
  • 打赏
  • 举报
回复
试试不就行了吗
haitao 2009-05-29
  • 打赏
  • 举报
回复
也可以,这样最简单——如果记录集可以全部加载到内存的话
shijies 2009-05-29
  • 打赏
  • 举报
回复
在调入内存的数据集中改?
datafansbj 2009-05-29
  • 打赏
  • 举报
回复
如果此字段不作为其他表的关联字段,可以重排的,否则不可以,因为逻辑连接关系被打断了(除非其他相关的表同时更新)
如果必须要求此字段连续,不要定义成自增类型的,自己在增加记录时算出来插进去,不过这样一来数据只能插入、更新,不能删除了(因为删除记录的时候还是要更新其他记录该字段的值的)
haitao 2009-05-28
  • 打赏
  • 举报
回复
如果只是希望有一个连续不缺的序号列,可以输出时动态生成这个列的
捧剑者 2009-05-28
  • 打赏
  • 举报
回复
貌似没有必要改。
lhy 2009-05-26
  • 打赏
  • 举报
回复
一般自增字段的主键都是作很重要的外键,不能改。
madyak 2009-05-26
  • 打赏
  • 举报
回复
没有必要重新排列,相信经常做项目的人,没有人会在这方面下功夫。
Harryfin 2009-05-26
  • 打赏
  • 举报
回复
重排才不好,你想N个业务表都关联这个主键了,一重排,后果是……?
shijies 2009-05-26
  • 打赏
  • 举报
回复
能让它重新排一遍吗?
阿三 2009-05-26
  • 打赏
  • 举报
回复
始终会向下排,你删除了,中间就会有断号
lishan200012 2009-05-26
  • 打赏
  • 举报
回复
不会的
它还是按6,7,8……自动递增的方式下去
lhy 2009-05-26
  • 打赏
  • 举报
回复
是第五条,不过主键还是6
Harryfin 2009-05-26
  • 打赏
  • 举报
回复
不会重排,继续下去

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧