1. 程式人生 > 其它 >MySQL 刪除表資料,重置自增 id 為 0 的兩個方式

MySQL 刪除表資料,重置自增 id 為 0 的兩個方式

MySQL 刪除表資料,重置自增 id 為 0 的兩個方式:

1、truncate table table_name;

truncate table `user`;
2、delete 配合 alter 語句 delete from table_name; alter table table_name AUTO_INCREMENT=0; 
delete from `user`;
alter table `user` AUTO_INCREMENT=0; 

本來還有一種 delete 配合 dbcc 的方式,但是我執行 dbcc 命令時一直提示一個語法問題,還沒解決,這裡就不推薦了。

drop、truncate、delete的對比分析

下面是對drop、truncate、delete的對比分析, 以下內容轉自:MySQL刪除語句比較,清空表資料,重置自增長索引 drop truncate delete 刪除徹底程度從強到弱,刪除速度從快到慢。

1、drop table `user`

drop將整個表直接刪除,是刪表,不是刪除表裡的資料,表被刪除後,表和資料沒有辦法找回

2、truncate (table) `user`

truncate 刪除表中的所有資料,不能與where一起使用。且會重置索引(自增長重新id從零開始)

3、delete from `user` (where)

delete 刪除表中的資料(可制定某一行),不指定某一行則刪除全表資料,隱式刪除,可以回滾,逐行刪除,刪除速度慢。

truncate和delete的區別

事務:truncate是不可以rollback的,但是delete是可以rollback的; 原因:truncate刪除整表資料,無事務日誌,不可恢復,delete是一行一行的刪除,每行刪除記錄都有日誌,可以rollback ② 效果:truncate刪除後將重置索引(自增長id從零開始) , delete不會刪除索引,但是delete 配合 alter 語句可以實現索引的重置,也就是自增 id 的重置。 ③ truncate 不能觸發任何Delete觸發器。 ④ delete 刪除可以返回行數 轉自:MySQL刪除語句比較,清空表資料,重置自增長索引 ———————————————— 版權宣告:本文為CSDN博主「NFA_YY」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。 原文連結:https://blog.csdn.net/nfa_yy/article/details/73613515