1. 問題的提出
在mysql的數據庫設計中,一般都會設計自增的數字列,用作業務無關的主鍵。 在數據庫出現頻繁的刪除操作或者清空操作之后,其自增的值仍然會自動增長,如果需要重新開始該如何做呢?
2. 解決辦法
a. alter table
delete from table_name;
ALTER TABLE table_name AUTO_INCREMENT = 1;
如果數據庫表中的數據很多,則刪除操作會持續比較久,這個問題需要注意。
b. truncate
truncate table_name
簡單快捷,直接清空數據。
3. delete vs tuncate
主要的區別如下:
truncate速度快,不做日志記錄,故無法進行rollback操作。 delete反之。
truncate會重置索引和自增初始值, delete則不會
truncate不會觸發trigger,而delete則會觸發。
