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