mysql让主键id重新排序

//新增辅助字段tid(自定义任意名称,不与表的字段冲突即可)

ALTER TABLE `table`

ADD COLUMN `tid`  bigint(20) NULL AFTER `id`;

//将辅助字段tid按照原有id的升序,从1自增
UPDATE table a,(select @rownum:=@rownum+1 tid,a.id FROM (
   SELECT id FROM table order by id
) a,(select @rownum:=0)b 
ORDER BY a.id)b
set a.tid=b.tid
where a.id=b.id;

//删除原有id,将tid改为id,设置为主键,自增
ALTER TABLE `table`
DROP COLUMN `id`,
CHANGE COLUMN `tid` `id`  bigint(20) NOT NULL AUTO_INCREMENT FIRST ,
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);

猜你喜欢

转载自blog.csdn.net/blogs_broadcast/article/details/80472929