當進行全表刪除時,AUTO_INCREMENT會從1重新開始編號。全表刪除的意思是發出以下兩條語句時:
delete from table_name;
or
truncate table table_name;
這是因爲進行全表操作時,MySQL實際是做了這樣的優化操作:先把數據表裏的所有數據和索引刪除,然後重建數據表。如果想刪除所有的數據行又想保留序列編號信息,可這樣用一個帶where的delete命令以抑制MySQL的優化:
delete from table_name where 1;
這將迫使MySQL爲每個刪除的數據行都做一次條件表達式的求值操作。
alter table table_name AUTO_INCREMENT = 1;//設置自增值爲1