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 与其他表有关联,请勿使用本方法随意改动,后果自负!
本文纯属强迫症患者无聊表现,部分思路源于互联网!