開發時常常會遇到因爲刪除過sql記錄而致使主鍵ID不連續,在刪除記錄再新增時,自增的數值並不會佔用你刪除的值,而是繼續在原基礎上++。sql
其實自增編號(id)每每被用做標識記錄的惟一性。無需過於在乎它的順序和值。若是須要有意義的序號值,建議另起一個字段,和主鍵的意義分開配合使用。code
不過我這人不同,雖然用不上主鍵id從新排序,但就是忍不住整理下。排序
這裏以一個demo表爲例:假設要操做的表名就是demo,指望針對表中id字段的值進行從新排序,那麼接下來須要作的是:開發
在要操做的表上新建一個字段,用於儲存當前的ID。rem
alter table demo add old_id int(10) not null;
將當前的ID保存到新字段old_id中。table
update demo set old_id=id;
刪除當前表的ID字段(自增主鍵)。class
alter table demo drop id;
從新創建ID字段,數據類型可按它原先的來。基礎
alter table demo add id int(10) not null;
設置一下這個新ID字段的屬性,設置爲自增和主鍵。date
alter table demo modify column id int(10) not null auto_increment, add primary key (id);
下面還必須更新一下其它相關聯的表,這也就是建立那個old_id的做用了。數據類型
update demo as a, 其它相關聯的表名 as b set b.aid=a.id where b.aid=a.old_id;
若是對你有用的話, 給我一個贊和收藏吧 , 你的支持對我很是重要