Truncate 清空表中的內容 用法詳解

2021-10-24 08:53:11 字數 682 閱讀 1301

當我們想要清空某張表時,往往會使用truncate語句。大多時候我們只關心能否滿足需求,而不去想這類語句的使用場景及注意事項。本篇文章主要介紹truncate語句的使用方法及注意事項

truncate的作用是清空表或者說是截斷表,只能作用於表。truncate的語法很簡單,後面直接跟表名即可,例如: truncate table tbl_name 或者 truncate tbl_name 。

執行truncate語句需要擁有表的drop許可權,從邏輯上講,truncate table類似於delete刪除所有行的語句或drop table然後再create table語句的組合。為了實現高效能,它繞過了刪除資料的dml方法,因此,它不能回滾。儘管truncate table與delete相似,但它被分類為ddl語句而不是dml語句。

上面說過truncate與delete,drop很相似,其實這三者還是與很大的不同的,下面簡單對比下三者的異同。

通過前面介紹,我們很容易得出truncate語句的使用場景,即該錶資料完全不需要時可以用truncate。如果想刪除部分資料用delete,注意帶上where子句;如果想刪除表,當然用drop;如果想保留表而將所有資料刪除且和事務無關,用truncate即可;如果和事務有關,或者想觸發trigger,還是用delete;如果是整理表內部的碎片,可以用truncate然後再重新插入資料。

清空文字內容truncate

all dat str 1213124123425 寫入資訊 with open 音訊資訊1111111111111 w as f print 寫入資訊的長度為 f.write all dat str 確認有資訊 with open 音訊資訊1111111111111 r as f print 確認...

清空某個mysql表中所有內容

delete from 表名 truncate table 表名 不帶where引數的delete語句可以刪除mysql表中所有內容,使用truncate table也可以清空mysql表中所有內容。效率上truncate比delete快,但truncate刪除後不記錄mysql日誌,不可以恢復資料...

Mysql清空表中資料

常用的清空資料表的sql語句有如下兩種 delete from 表名 truncate table 表名第一種方法 是刪除表中資料且主鍵id是繼續順序排下去 第二種方法 是徹底清空表中資料 把資料結構恢復至剛建表的時候 資料全部清空 從效能上講 測試了三千條資料delete from table比t...