如果选取一个自增字段作为主键,在删除一个记录后,数据表的主键编号是否重新排序?例如原来一个表中有6条记录,若删除表中的第3条记录,原来的第六条记录现在算第5条还是第6条?

解决方案 »

  1.   

    不会的
    它还是按6,7,8……自动递增的方式下去
      

  2.   

    始终会向下排,你删除了,中间就会有断号
      

  3.   

    重排才不好,你想N个业务表都关联这个主键了,一重排,后果是……?
      

  4.   

    没有必要重新排列,相信经常做项目的人,没有人会在这方面下功夫。
      

  5.   

    一般自增字段的主键都是作很重要的外键,不能改。
      

  6.   

    如果只是希望有一个连续不缺的序号列,可以输出时动态生成这个列的
      

  7.   

    也可以,这样最简单——如果记录集可以全部加载到内存的话
      

  8.   

    如果此字段不作为其他表的关联字段,可以重排的,否则不可以,因为逻辑连接关系被打断了(除非其他相关的表同时更新)
    如果必须要求此字段连续,不要定义成自增类型的,自己在增加记录时算出来插进去,不过这样一来数据只能插入、更新,不能删除了(因为删除记录的时候还是要更新其他记录该字段的值的)