MySQL刪除語句比較,清空表數據,重置自增長索引


drop truncate delete 程度從強到弱

1、drop table tb
drop將表格直接刪除,沒有辦法找回

2、truncate (table) tb
truncate 刪除表中的所有數據,不能與where一起使用

3、delete from tb (where)
delete 刪除表中的數據(可制定某一行)

truncate和delete的區別

① 事務:truncate是不可以rollback的,但是delete是可以rollback的;
原因:truncate刪除整表數據(ddl語句,隱式提交),delete是一行一行的刪除,可以rollback
② 效果:truncate刪除后將重置索引(自增長id從零開始) ,delete不會刪除索引
③ truncate 不能觸發任何Delete觸發器。
④ delete 刪除可以返回行數

TRUNCATE語句和DELETE語句的區別

1、delete語句,是DML語句,truncate語句通常被認為是DDL語句。

2、delete語句,后面可以跟where子句,通常指定where子句中的條件表達式,只刪除滿足條件的部分記錄,而truncate語句,只能用於刪除表中的所有記錄。

3、truncate語句,刪除表中的數據后,向表中添加記錄時,自動增加字段的默認初始值重新從1開始,而使用delete語句,刪除表中所有記錄后,向表中添加記錄時,自動增加字段的值,為刪除時該字段的最大值加1,也就是在原來的基礎上遞增。

4、delete語句,每刪除一條記錄,都會在日志中記錄,而使用truncate語句,不會在日志中記錄刪除的內容,因此,truncate語句的執行效率比delete語句高。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM