我有一个带有索引列id2
的表。使用此表插入/删除记录后,有一些丢失的记录。 id2
就像这样开始
1,2,3,4,8,9,13,55,66,67,68 .... 928746
如何重新生成id2
的序列,以便它没有丢失的数字[1,2,3,4,5,6 ....]?此外,id2
顺序必须与ts
字段一致,这是记录插入的unix时间戳。
是否可以使用mysql查询,没有任何代码(PHP)?
P.S没有什么依赖于这些IDS我可以自由地改变它们,我只想这样做。任何提示?
答案 0 :(得分:0)
SET @rownum=0;
UPDATE [table] t, (SELECT @rownum:=@rownum+1 rownum, [table].* FROM [table]) r
SET t.[field] = r.rownum
WHERE (t.[primary_key] = r.[primary_key])
将[table]替换为您的表名,[field]替换为您的字段名称,[primary_key]替换为主键列名称