mysql重置id排序_列替换法重置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 与其他表有关联,请勿使用本方法随意改动,后果自负!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值