如何重新计算主要指数?

Daw*_*hia 4 mysql

我在mysql数据库中有自动增量PRIMARY KEY的表.定期删除此表中的行并添加.因此结果是最新行的PK值正在快速增长,但此表中没有那么多行.

我想做的是以这种方式"重新计算"PK,第一行有PK = 1,第二行PK = 2,依此类推.此表的PK没有外部依赖关系,因此它是"安全的".

有没有它只能使用mysql查询/工具完成?或者我必须从我的代码中做到这一点?

ajr*_*eal 11

set @pk:=0;

update 
  your_table
  set pk=@pk:=@pk+1
  order by pk;       <-- order by original pk
Run Code Online (Sandbox Code Playgroud)

在我看来,拥有一个很大的代理键是可以的.您可能不太可能用完所有允许的最大整数.考虑一下你可以使用unsigned加倍.