關於mysql刪除記錄后id順序不連續的解決方法


經常有一些完美主義者問我,怎么讓數據庫的自增字段在記錄被刪除時重置它們的順序,這里不去討論這么折騰是否真有必要,只說說解決方法,有這方面需求的朋友不妨看看。

 

方法1、刪除自增字段,然后重建(缺點就是必須記住自增字段的其它屬性,不然可能會導致一些未知問題)

ALTER TABLE `tablename` DROP COLUMN `id`;

ALTER TABLE `tablename` ADD `id` int(10) unsigned NOT NULL AUTO_INCREMENT FIRST,ADD PRIMARY KEY (`id`), AUTO_INCREMENT = 0 ROW_FORMAT = COMPACT;

 

方法2、通過sql語句按順序重置自增字段值,實現方法:

SET @i=0;

UPDATE `tablename` SET `id`=(@i:=@i+1);

ALTER TABLE `tablename` AUTO_INCREMENT=0

 

 

自測方法2完美!!

 
========================

MySQL的user表中本來15條數據,我把后5條給刪除了,再插入新用戶后id會從16開始計數, 導致重新插入值,字段id取值不連續.

 

 

 

解決方案:

ALTER TABLE USER AUTO_INCREMENT=10;  (此處10改為自己的斷點即可)

 

再插入新數據id就連上了,eg:

 


————————————————
版權聲明:本文為CSDN博主「wudinaniya」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wudinaniya/java/article/details/77606288

===============================

數據庫當中刪除數據后主鍵id不連續的問題

 

新建查詢:

ALTER TABLE `表名` DROP `主鍵名`;
ALTER TABLE `表名` ADD `主鍵名` int NOT NULL FIRST;
ALTER TABLE `表名` MODIFY COLUMN `主鍵名` int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(主鍵名);

回到數據庫刷新一下啊,這樣就ok啦!

 
分類:  科技蒼穹


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM