MySQL重置 Auto_increment欄位起始值

小亮520cl發表於2015-11-05
有2種方法:
1.alter table tbname auto_increment = x  ;
設定表tbname的唯一auto_increment欄位起始值從x開始,如果此表資料量很多的話,這樣執行起來會很慢。

2.truncate tbname ;
直接清空所有資料,下次插入資料時auto_increment欄位會自動從0開始。 和delete from tbname不同的是delete只刪除資料而不重置auto_incremnet.

下一個自增id是多少
mysql> select AUTO_INCREMENT from INFORMATION_SCHEMA.TABLES   where TABLE_NAME='t';



自增idFAQ
  1. 1.一個t表有a,b欄位,a是主鍵,自增長值.向表中插入10條記錄,然後刪除5條,再退出終端重啟資料庫.:我再插入5條資料是從6開始還是從11開始?
  因為innodb重啟會回收髒資料,重啟後會回收刪除後自增長的值,所以innodb是從6開始重新記錄,不重啟則是11。myisam是資料和索引分開存放的,重啟後不會回收資料,會記錄自增長的資訊,所以會是11 ,
 可以理解為未重啟:next_id=出現過的max(id)+1
             重啟:next_id=max(id)+1



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1823326/,如需轉載,請註明出處,否則將追究法律責任。

相關文章