萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql重置自增ID(織夢文章ID的重新排序)

mysql重置自增ID(織夢文章ID的重新排序)

mysql數據庫有一個問題就是數據我們數據使用delete刪除之後再插入數據不會自動補充而是會空一個記錄在哪裡,那麼有時我們需要進行一些連續數據處理 ,此時需要重圍自增ID了,下面一起來看看吧。


做網站時經常會遇到由於刪除過文章而導致文章ID不連續,由於文章ID字段在數據庫中的屬性一般是自動增長的,這是mysql中的一個記數器記錄的,在刪除記錄再新增時,自增的數值並不會占用你刪除的值,而是繼續在原基礎上++。

數據表中的不連續的記錄對於處女座來說是不能忍受的,所以下面來看看如何將已有數據的自增ID重新排列。
這裡以織夢系統(dedecms)的文章表為例:假設要操作的表是dede_archives, 也就是織夢的內容主表。
1.在要操作的表上新建一個字段,用於儲存當前的ID。

alter table  dede_archives add old_id int(10) not null;

2. 將當前的ID保存到這個新字段中。

update dede_archives set old_id=id;

3. 刪除當前表的ID字段(自增主鍵)。

alter table dede_archives drop id;

4. 重新建立ID字段,數據類型可按它原先的來。

alter table dede_archives add id int(10) not null;

5. 設置一下這個新ID字段的屬性,設置為自增和主鍵。

alter table dede_archives modify column id int(10) not null auto_increment, add primary key (id);

經過上面這步,新的ID字段已經重新排列了~
下面可以更新一下其它相關聯的表,這也就是創建那個old_id的作用了。

update dede_archives as  a, dede_副表 as b set b.aid=a.id where b.aid=a.old_id;

7. 完成!現在的文章ID已經從1開始重新計數了~~

copyright © 萬盛學電腦網 all rights reserved