MySQL刪除表數據與MySQL清空表命令的3種方法淺析
一、MySQL清空表數據命令:truncate
SQL語法:
truncate table 表名
注意:
- 不能與where一起使用。
- truncate刪除數據后是不可以rollback的。
- truncate刪除數據后會重置Identity(標識列、自增字段),相當于自增列會被置為初始值,又重新從1開始記錄,而不是接著原來的ID數。
- truncate刪除數據后不寫服務器log,整體刪除速度快。
- truncate刪除數據后不激活trigger(觸發(fā)器)。
二、MySQL刪除表命令:drop
SQL語法:
drop table 表名;
或者是
drop table if exists 表名;
注意:
truncate只會清除表數據,drop不光清除表數據還要刪除表結構。
三、MySQL清空數據表內容的語法:delete
SQL命令:
delete from 表名 where id='1';
或
delete from 表名;
注意:
delete含義:你要刪除哪張表的數據 ?你要刪掉哪些行 ?delete可以刪除一行,也可以刪除多行;如果不加where條件,則是刪除表所有的數據,這是很危險的!不建議這樣做!
總結:
1、當你不再需要該表時, 用 drop;
2、當你仍要保留該表,但要刪除所有數據表記錄時, 用 truncate;
3、當你要刪除部分記錄或者有可能會后悔的話, 用 delete。
補充:MySQL刪除表操作delete、truncate、drop的區(qū)別
1.表和索引所占空間:
當表被TRUNCATE 后,這個表和索引所占用的空間會恢復到初始大小;
DELETE操作不會減少表或索引所占用的空間;
DROP語句將表所占用的空間全釋放掉。
2.應用范圍:
TRUNCATE 只能對table;
DELETE可以是table和view。
3.執(zhí)行速度:
drop > truncate > delete
4.delete from刪空表后,會保留一個空的頁,truncate在表中不會留有任何頁。
5.DELETE語句執(zhí)行刪除的過程是每次從表中刪除一行,并且同時將該行的刪除操作作為事務記錄在日志中保存以便進行進行回滾操作。
TRUNCATE TABLE 則一次性地從表中刪除所有的數據并不把單獨的刪除操作記錄記入日志保存,刪除行是不能恢復的。并且在刪除的過程中不會激活與表有關的刪除觸發(fā)器。執(zhí)行速度快。
6.當使用行鎖執(zhí)行 DELETE 語句時,將鎖定表中各行以便刪除。truncate始終鎖定表和頁,而不是鎖定各行。
7.如果有identity產生的自增id列,delete from后仍然從上次的數開始增加,即種子不變;使用truncate刪除之后,種子會恢復到初始值。
總結
到此這篇關于MySQL刪除表數據與MySQL清空表命令的文章就介紹到這了,更多相關MySQL刪除表數據 清空表命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
記錄無法安裝mysql-Invalid GPG Key from file:/etc/pki/rpm-gpg/RPM-G
在aliyun上安裝MySQL時由于上次錯誤卸載mysql 導致校驗文件出問題。下面小編給大家分享記錄無法安裝mysql-Invalid GPG Key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql的解決方法,需要的朋友參考下吧2017-01-01

