mysql重置自增ID | 數據庫中的id列從新開始排序 (親測有效)

開發時常常會遇到因爲刪除過sql記錄而致使主鍵ID不連續,在刪除記錄再新增時,自增的數值並不會佔用你刪除的值,而是繼續在原基礎上++。sql

其實自增編號(id)每每被用做標識記錄的惟一性。無需過於在乎它的順序和值。若是須要有意義的序號值,建議另起一個字段,和主鍵的意義分開配合使用。code

不過我這人不同,雖然用不上主鍵id從新排序,但就是忍不住整理下。排序

這裏以一個demo表爲例:假設要操做的表名就是demo,指望針對表中id字段的值進行從新排序,那麼接下來須要作的是:開發

  1. 在要操做的表上新建一個字段,用於儲存當前的ID。rem

    alter table demo add old_id int(10) not null;
  2. 將當前的ID保存到新字段old_id中。table

    update demo set old_id=id;
  3. 刪除當前表的ID字段(自增主鍵)。class

    alter table demo drop id;
  4. 從新創建ID字段,數據類型可按它原先的來。基礎

    alter table demo add id int(10) not null;
  5. 設置一下這個新ID字段的屬性,設置爲自增和主鍵。date

    alter table demo modify column id int(10) not null auto_increment, add primary key (id);
  6. 通過上面這步,新的ID字段已經從新排列了~

下面還必須更新一下其它相關聯的表,這也就是建立那個old_id的做用了。數據類型

update demo as a, 其它相關聯的表名 as b set b.aid=a.id where b.aid=a.old_id;
  1. 完成!如今的文章ID已經從1開始從新計數了~~

若是對你有用的話, 給我一個贊和收藏吧 , 你的支持對我很是重要

相關文章
相關標籤/搜索