mysql重置id排序_列替换法重置MySQL自增长ID排序

Last updated on 2019年3月21日MySQL数据库中删除了一部分数据,导致自增 id 列展示很丑,逼死强迫症。这里推荐一个列替换方法:删除原来

Last updated on 2019年3月21日

MySQL数据库中删除了一部分数据,导致自增 id 列展示很丑,逼死强迫症。

这里推荐一个列替换方法:

删除原来列,重新建立 id 列

#创建存储过程,请修改相应表参数

CREATE PROCEDURE PRO_REBUILD_ID()

BEGIN

DECLARE t_error INTEGER;

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;

START TRANSACTION;

#1.将表里的 id 列,取消自增,取消主键

ALTER TABLE test_tab MODIFY COLUMN id INT (11) NOT NULL FIRST, DROP PRIMARY KEY;

#2.新增 id2 列,带上自增、主键。名字可以随意,别与原表重复

ALTER TABLE test_tab ADD COLUMN id2 INT (11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id2);

#3.删除旧 id 列

ALTER TABLE test_tab DROP COLUMN id;

#4.将 id2 修改为 id 列

ALTER TABLE test_tab CHANGE COLUMN id2 id INT (11) NOT NULL AUTO_INCREMENT FIRST;

IF t_error = 1 THEN

ROLLBACK;

ELSE

COMMIT;

END IF;

END

注:上述代码创建了一个存储过程,直接调用即可 CALL PRO_REBUILD_ID();

如果您的表 id 与其他表有关联,请勿使用本方法随意改动,后果自负!

本文纯属强迫症患者无聊表现,部分思路源于互联网!