亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL中Truncate用法詳解

 更新時間:2021年12月13日 11:56:32   作者:kun_行者  
Truncate是一個能夠快速清空資料表內(nèi)所有資料的SQL語法。這篇文章介紹了Truncate用法及注意事項,并和drop,delete方法進行對比。需要的朋友可以收藏下,方便下次瀏覽觀看

前言:

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

1.truncate使用語法

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

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

2.truncate與drop,delete的對比

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

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

3.truncate使用場景及注意事項

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

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

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

以上所述是小編給大家介紹的MySQL中Truncate用法詳解,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 解決遠程連接mysql很慢的方法(mysql_connect 打開連接慢)

    解決遠程連接mysql很慢的方法(mysql_connect 打開連接慢)

    有次同事提出開發(fā)使用的mysql數(shù)據(jù)庫連接很慢,因為我們的mysql開發(fā)數(shù)據(jù)庫是單獨一臺機器部署的,所以認為可能是網(wǎng)絡(luò)連接問題導(dǎo)致的。
    2011-07-07
  • SELECT?*?效率低原理解析

    SELECT?*?效率低原理解析

    這篇文章主要為大家介紹了SELECT?*?效率低原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 重裝mysql時3306端口被占用的解決方法

    重裝mysql時3306端口被占用的解決方法

    如果在安裝mysql中出現(xiàn)3306端口不能使用,已經(jīng)被占用的過程,則需要將該端口號的進程釋放即可,所以本文給大家介紹了重裝mysql時3306端口被占用的解決方法,需要的朋友可以參考下
    2024-02-02
  • mysql批量插入insert語句的兩種方法

    mysql批量插入insert語句的兩種方法

    在MySQL中批量插入數(shù)據(jù)有幾種方法,本文主要介紹了mysql批量插入insert語句的兩種方法,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • mysql IS NULL使用索引案例講解

    mysql IS NULL使用索引案例講解

    這篇文章主要介紹了mysql IS NULL使用索引案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 詳解監(jiān)聽MySQL的binlog日志工具分析:Canal

    詳解監(jiān)聽MySQL的binlog日志工具分析:Canal

    Canal主要用途是基于MySQL數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱和消費,目前主要支持MySQL。接下來通過本文給大家介紹監(jiān)聽MySQL的binlog日志工具分析:Canal的相關(guān)知識,感興趣的朋友一起看看吧
    2020-10-10
  • 在Python安裝MySQL支持模塊的方法

    在Python安裝MySQL支持模塊的方法

    這篇文章來給各位同學(xué)詳細介紹關(guān)于在Python安裝MySQL支持模塊有需要了解的朋友可參考
    2013-08-08
  • mysql數(shù)據(jù)庫添加用戶及分配權(quán)限具體實現(xiàn)

    mysql數(shù)據(jù)庫添加用戶及分配權(quán)限具體實現(xiàn)

    這篇文章主要介紹了mysql數(shù)據(jù)庫添加用戶及分配權(quán)限的方法,需要的朋友可以參考下
    2014-02-02
  • MySQL查看版本的五種方法總結(jié)

    MySQL查看版本的五種方法總結(jié)

    在日常項目開發(fā)過程中,我們經(jīng)常要連接自己的數(shù)據(jù)庫,此時不知道數(shù)據(jù)庫的版本是萬萬不可的,下面這篇文章主要給大家介紹了關(guān)于MySQL查看版本的五種方法,需要的朋友可以參考下
    2023-02-02
  • Mysql超詳細講解死鎖問題的理解

    Mysql超詳細講解死鎖問題的理解

    又到了金三銀四的時候,大家都按耐不住內(nèi)心的躁動,我在這里給大家分享下之前面試中遇到的一個知識點(死鎖問題),如有不足,歡迎大佬們指點指點
    2022-03-03

最新評論