最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL刪除表數(shù)據(jù)、清空表命令詳解(truncate、drop、delete區(qū)別)

 更新時(shí)間:2024年10月11日 08:53:31   作者:尋求出路的程序媛  
介紹了MySQL中清空或刪除表數(shù)據(jù)的三種方法:truncate、delete和drop,以及它們的特點(diǎn)、使用場(chǎng)景和注意事項(xiàng),Truncate用于快速刪除表中所有數(shù)據(jù)并釋放空間,但不保留表結(jié)構(gòu);delete用于刪除表中特定行或所有數(shù)據(jù),保留表結(jié)構(gòu)且操作可回滾

一、MySQL清空表數(shù)據(jù)三種方法

1.1 清空表數(shù)據(jù):truncate

  • sql命令
#清空多張表、庫中所有表的數(shù)據(jù)
truncate table table_name1,table_name2,...;

#清空單張表的數(shù)據(jù)
truncate table table_name;

注意:

  • truncate會(huì)刪除表中的所有數(shù)據(jù)、釋放空間,但是保留表結(jié)構(gòu)
  • 只能操作表,不能與where一起使用
  • truncate刪除操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能rollback,操作不觸發(fā)trigger
  • truncate刪除數(shù)據(jù)后會(huì)釋放表空間、重置Identity(標(biāo)識(shí)列、自增字段),相當(dāng)于自增列會(huì)被置為初始值,又重新從1開始記錄、而非接著原來的id數(shù)
  • truncate刪除數(shù)據(jù)后不寫服務(wù)器log,整體刪除速度快

1.2 刪除表:drop

  • sql命令
drop table table_name;
drop table if exists table_name;

注意:

  • drop會(huì)刪除整個(gè)表,包括表結(jié)構(gòu)和數(shù)據(jù),釋放空間
  • 立即執(zhí)行,執(zhí)行速度最快
  • 不可回滾

1.3 刪除/清空表數(shù)據(jù):delete

  • sql命令
#刪除部分?jǐn)?shù)據(jù)
delete from tb_name where clause;

#清空表,僅刪除數(shù)據(jù)、保留表結(jié)構(gòu),同時(shí)也不釋放表空間
delete from tb_name;

注意:

  • 刪除表中數(shù)據(jù)而不刪除表結(jié)構(gòu),也不釋放空間
  • delete可以刪除一行、多行、乃至整張表
  • 每次刪除一行,都在事務(wù)日志中為所刪除的每行記錄一項(xiàng),可回滾
  • 如果不加where條件,表示刪除表中所有數(shù)據(jù),僅刪除數(shù)據(jù)、保留表結(jié)構(gòu),同時(shí)也不釋放表空間

MySQL、Mariadb、PostgreSQL刪除表數(shù)據(jù)、清空表命令 都可用以上三種命令。

二、使用原則

使用原則總結(jié)如下:

  • 當(dāng)你不需要該表時(shí)(刪除數(shù)據(jù)和結(jié)構(gòu)),用drop;
  • 當(dāng)你仍要保留該表、僅刪除所有數(shù)據(jù)表內(nèi)容時(shí),用truncate;
  • 當(dāng)你要?jiǎng)h除部分記錄、且希望能回滾的話,用delete;

在沒有備份的情況下,謹(jǐn)慎使用drop、truncate。

在實(shí)際應(yīng)用中,要根據(jù)具體需求和場(chǎng)景選擇合適的操作。

三、truncate、drop、delete區(qū)別

truncate、delete和drop都是用于刪除數(shù)據(jù)或表的操作,但它們之間有一些關(guān)鍵的區(qū)別:

1.操作類型

  • truncate:刪除表中的所有數(shù)據(jù),保留表結(jié)構(gòu),釋放空間。它是一種DDL(數(shù)據(jù)定義語言)操作,執(zhí)行速度較快。
  • delete:刪除表中的特定行,可以逐行刪除,保留表結(jié)構(gòu),也不釋放空間。它是一種DML(數(shù)據(jù)操作語言)操作,執(zhí)行速度較慢。
  • drop:刪除整個(gè)表,包括表結(jié)構(gòu)和數(shù)據(jù),釋放空間。它是一種DDL操作,但不同于truncate,它會(huì)釋放表所占用的空間。

2.數(shù)據(jù)刪除方式

  • truncate:刪除表中的所有數(shù)據(jù),但不會(huì)刪除表結(jié)構(gòu)。適用于需要保留表結(jié)構(gòu)的情況。
  • delete:刪除表中的特定數(shù)據(jù),可以根據(jù)條件刪除,表的結(jié)構(gòu)和約束保持不變。適用于需要根據(jù)特定條件刪除數(shù)據(jù)的情況。
  • drop:刪除整個(gè)表,包括表結(jié)構(gòu)和數(shù)據(jù)。適用于不再需要表結(jié)構(gòu)的情況。

3.執(zhí)行速度:drop > truncate > delete

  • truncate:執(zhí)行速度較快,因?yàn)樗淮涡詣h除所有數(shù)據(jù),過釋放表的存儲(chǔ)空間來刪除數(shù)據(jù),并將表重置為初始狀態(tài)。
  • delete:執(zhí)行速度較慢,因?yàn)樗枰鹦袆h除數(shù)據(jù),并且會(huì)生成大量的事務(wù)日志,同時(shí)也不釋放空間。
  • drop:執(zhí)行速度較快,因?yàn)樗淮涡詣h除整個(gè)表。

4.回滾能力

  • truncate:不可回滾,一旦執(zhí)行,數(shù)據(jù)將被永久刪除、無法恢復(fù)。
  • delete:可以回滾,使用ROLLBACK語句可以撤銷刪除操作。
  • drop:不可回滾,一旦執(zhí)行,表結(jié)構(gòu)和數(shù)據(jù)都將被永久刪除。

5.觸發(fā)器

  • truncate:不會(huì)觸發(fā)觸發(fā)器。
  • delete:會(huì)觸發(fā)觸發(fā)器。
  • drop:不會(huì)觸發(fā)觸發(fā)器,因?yàn)樗莿h除整個(gè)表。

總結(jié)

  • 如果您需要快速刪除整個(gè)表中的數(shù)據(jù),但保留表結(jié)構(gòu),可以選擇truncate。
  • 如果您需要?jiǎng)h除特定行的數(shù)據(jù),可以根據(jù)條件刪除,可以選擇delete。
  • 如果您需要?jiǎng)h除整個(gè)表,包括表結(jié)構(gòu)和數(shù)據(jù),可以選擇drop。
  • 在實(shí)際應(yīng)用中,要根據(jù)具體需求和場(chǎng)景選擇合適的操作。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL利用索引優(yōu)化ORDER BY排序語句的方法

    MySQL利用索引優(yōu)化ORDER BY排序語句的方法

    這篇文章主要介紹了MySQL利用索引優(yōu)化ORDER BY排序語句的方法,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-10-10
  • 快速了解MySQL 索引

    快速了解MySQL 索引

    這篇文章主要介紹了MySQL 索引的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • MySQL數(shù)據(jù)庫中的TRUNCATE?TABLE命令詳解

    MySQL數(shù)據(jù)庫中的TRUNCATE?TABLE命令詳解

    這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫中TRUNCATE?TABLE命令的相關(guān)資料,Truncate Table“清空表”的意思,它對(duì)數(shù)據(jù)庫中的表進(jìn)行清空操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • MySql的優(yōu)化步驟介紹(推薦)

    MySql的優(yōu)化步驟介紹(推薦)

    下面小編就為大家?guī)硪黄狹ySql的優(yōu)化步驟介紹(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Datagrip2020下載MySQL驅(qū)動(dòng)失敗的問題

    Datagrip2020下載MySQL驅(qū)動(dòng)失敗的問題

    這篇文章主要介紹了Datagrip2020下載MySQL驅(qū)動(dòng)失敗的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • MYSQL命令行導(dǎo)入導(dǎo)出數(shù)據(jù)庫詳解

    MYSQL命令行導(dǎo)入導(dǎo)出數(shù)據(jù)庫詳解

    這篇文章主要詳細(xì)介紹了MYSQL命令行進(jìn)行導(dǎo)入導(dǎo)出數(shù)據(jù)庫操作的方法,并且分win系統(tǒng)和Linux系統(tǒng)介紹了mysql備份和還原的方法,非常的詳細(xì),希望對(duì)大家能有所幫助
    2014-09-09
  • mysql 安全管理詳情

    mysql 安全管理詳情

    這篇文章主要介紹了mysql 安全管理,MySQL服務(wù)器的安全基礎(chǔ)是用戶應(yīng)該對(duì)他們需要的數(shù)據(jù)具有適當(dāng)?shù)脑L問權(quán),既不能多也不能少,換句話說,用戶不能對(duì)過多的數(shù)據(jù)具有過多的訪問權(quán),下面?zhèn)z看看文章詳細(xì)內(nèi)容吧
    2021-10-10
  • MySQL5.7主從配置實(shí)例解析

    MySQL5.7主從配置實(shí)例解析

    這篇文章主要為大家詳細(xì)解析了MySQL5.7主從配置的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • MYSQL事件查看器使用介紹

    MYSQL事件查看器使用介紹

    MYSQL事件查看器使用介紹,需要的朋友可以參考下
    2012-07-07
  • CMS不要讓MySQL為你流淚

    CMS不要讓MySQL為你流淚

    MySQL是中小型網(wǎng)站普遍使用的數(shù)據(jù)庫之一,然而,很多人并不清楚MySQL到底能支持多大的數(shù)據(jù)量,再加上某些國內(nèi)CMS廠商把數(shù)據(jù)承載量的責(zé)任推給它,導(dǎo)致很多不了解MySQL的站長對(duì)它產(chǎn)生了很多誤解
    2008-12-12

最新評(píng)論

石渠县| 怀宁县| 德兴市| 张家口市| 衡阳市| 呈贡县| 大港区| 曲沃县| 交城县| 区。| 台州市| 永顺县| 新兴县| 鄄城县| 西林县| 原阳县| 双辽市| 长白| 唐山市| 墨竹工卡县| 双牌县| 安乡县| 榆树市| 子长县| 格尔木市| 靖西县| 乌海市| 大港区| 十堰市| 怀宁县| 高陵县| 卢湾区| 津南区| 宣城市| 普兰店市| 广南县| 福建省| 洛扎县| 民县| 读书| 巴东县|