How to reorder a primary key?

前端 未结 5 1111
小蘑菇
小蘑菇 2021-01-01 06:21

I have a table of 5700 records. The primary key is an integer. Now I noticed that some values are missing. Like this:

100 data
101 data 
102 data
104 data
         


        
5条回答
  •  夕颜
    夕颜 (楼主)
    2021-01-01 06:59

    I'd advise against messing with your PKs unless you really have no choice, it can cause breakage all over the place when that id column is referred by other tables. If the PK really tolerates no gaps, maybe the choice of PK was not ideal...

    If you really think you should do this (and are sure nothing will break in other tables):

    • create a table with the same structure as the original one, but use type serial for id
    • copy data without id into that copy table - you'll now have a copy of original with thanks to serial a nice gapless id field
    • empty original table (or faster, create an identical copy and drop original)
    • copy data from copy table into original table including id

提交回复
热议问题