久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL Truncate用法詳解

瀏覽:7日期:2023-10-12 10:42:36

前言:

當(dāng)我們想要清空某張表時(shí),往往會(huì)使用truncate語(yǔ)句。大多時(shí)候我們只關(guān)心能否滿足需求,而不去想這類語(yǔ)句的使用場(chǎng)景及注意事項(xiàng)。本篇文章主要介紹truncate語(yǔ)句的使用方法及注意事項(xiàng)。

1.truncate使用語(yǔ)法

truncate的作用是清空表或者說(shuō)是截?cái)啾?,只能作用于表。truncate的語(yǔ)法很簡(jiǎn)單,后面直接跟表名即可,例如:truncate table tbl_name 或者 truncate tbl_name 。

執(zhí)行truncate語(yǔ)句需要擁有表的drop權(quán)限,從邏輯上講,truncate table類似于delete刪除所有行的語(yǔ)句或drop table然后再create table語(yǔ)句的組合。為了實(shí)現(xiàn)高性能,它繞過(guò)了刪除數(shù)據(jù)的DML方法,因此,它不能回滾。盡管truncate table與delete相似,但它被分類為DDL語(yǔ)句而不是DML語(yǔ)句。

2.truncate與drop,delete的對(duì)比

上面說(shuō)過(guò)truncate與delete,drop很相似,其實(shí)這三者還是與很大的不同的,下面簡(jiǎn)單對(duì)比下三者的異同。

truncate與drop是DDL語(yǔ)句,執(zhí)行后無(wú)法回滾;delete是DML語(yǔ)句,可回滾。 truncate只能作用于表;delete,drop可作用于表、視圖等。 truncate會(huì)清空表中的所有行,但表結(jié)構(gòu)及其約束、索引等保持不變;drop會(huì)刪除表的結(jié)構(gòu)及其所依賴的約束、索引等。 truncate會(huì)重置表的自增值;delete不會(huì)。 truncate不會(huì)激活與表有關(guān)的刪除觸發(fā)器;delete可以。 truncate后會(huì)使表和索引所占用的空間會(huì)恢復(fù)到初始大??;delete操作不會(huì)減少表或索引所占用的空間,drop語(yǔ)句將表所占用的空間全釋放掉。

3.truncate使用場(chǎng)景及注意事項(xiàng)

通過(guò)前面介紹,我們很容易得出truncate語(yǔ)句的使用場(chǎng)景,即該表數(shù)據(jù)完全不需要時(shí)可以用truncate。如果想刪除部分?jǐn)?shù)據(jù)用delete,注意帶上where子句;如果想刪除表,當(dāng)然用drop;如果想保留表而將所有數(shù)據(jù)刪除且和事務(wù)無(wú)關(guān),用truncate即可;如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete;如果是整理表內(nèi)部的碎片,可以用truncate然后再重新插入數(shù)據(jù)。

無(wú)論怎樣,truncate表都是高危操作,特別是在生產(chǎn)環(huán)境要更加小心,下面列出幾點(diǎn)注意事項(xiàng),希望大家使用時(shí)可以做下參考。

truncate無(wú)法通過(guò)binlog回滾。 truncate會(huì)清空所有數(shù)據(jù)且執(zhí)行速度很快。 truncate不能對(duì)有外鍵約束引用的表使用。 執(zhí)行truncate需要drop權(quán)限,不建議給賬號(hào)drop權(quán)限。 執(zhí)行truncate前一定要再三檢查確認(rèn),最好提前備份下表數(shù)據(jù)。

以上就是MySQL Truncate用法詳解的詳細(xì)內(nèi)容,更多關(guān)于MySQL Truncate的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
主站蜘蛛池模板: 互助| 府谷县| 林周县| 文昌市| 沁源县| 渭源县| 茌平县| 清水县| 乌拉特前旗| 柘荣县| 德庆县| 金川县| 宜宾县| 秭归县| 永新县| 灵武市| 高州市| 新源县| 瓮安县| 尤溪县| 惠州市| 济宁市| 双城市| 汽车| 突泉县| 新晃| 沧州市| 玉树县| 肥城市| 卢龙县| 杭锦后旗| 襄樊市| 宁南县| 深泽县| 图们市| 博乐市| 邓州市| 洪泽县| 廊坊市| 罗源县| 蒙山县|