99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MySQL數(shù)據(jù)庫:drop、truncate和delete的區(qū)別

如意 ? 來源:CSDN ? 作者:海盜船長沒有船 ? 2020-08-19 17:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、delete

delete是DML(data maintain Language,這個操作會被放到 rollback segment中,事務(wù)提交后才生效),執(zhí)行delete操作時,每次從表中刪除一行,并且同時將該行的的刪除操作記錄在redo和undo表空間中以便進行回滾(rollback)和重做操作,但要注意表空間要足夠大,需要手動提交(commit)操作才能生效,可以通過rollback撤消操作。

delete可根據(jù)條件刪除表中滿足條件的數(shù)據(jù),如果不指定where子句,那么刪除表中所有記錄。

delete語句不影響表所占用的extent,高水線(high watermark)保持原位置不變。

二、truncate

truncate是DDL,會隱式提交,所以,不能回滾,不會觸發(fā)觸發(fā)器。

truncate會刪除表中所有記錄,并且將重新設(shè)置高水線和所有的索引,缺省情況下將空間釋放到minextents個extent,除非使用reuse storage。不會記錄日志,所以執(zhí)行速度很快,但不能通過rollback撤消操作(如果一不小心把一個表truncate掉,也是可以恢復(fù)的,只是不能通過rollback來恢復(fù))。

對于外鍵(foreignkey )約束引用的表,不能使用 truncate table,而應(yīng)使用不帶 where 子句的 delete 語句。

truncatetable不能用于參與了索引視圖的表。

三、drop

drop是DDL,會隱式提交,所以,不能回滾,不會觸發(fā)觸發(fā)器。

drop語句刪除表結(jié)構(gòu)及所有數(shù)據(jù),并將表所占用的空間全部釋放。

drop語句將刪除表的結(jié)構(gòu)所依賴的約束,觸發(fā)器,索引,依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài)。

總結(jié):

1、在速度上,一般來說,drop》 truncate 》 delete。

2、在使用drop和truncate時一定要注意,雖然可以恢復(fù),但為了減少麻煩,還是要慎用。

3、如果想刪除部分?jǐn)?shù)據(jù)用delete,注意帶上where子句,回滾段要足夠大;

如果想刪除表,當(dāng)然用drop;

如果想保留表而將所有數(shù)據(jù)刪除,如果和事務(wù)無關(guān),用truncate即可;

如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete;

如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導(dǎo)入/插入數(shù)據(jù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3927

    瀏覽量

    66254
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2039

    瀏覽量

    62146
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    860

    瀏覽量

    27946
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    企業(yè)級MySQL數(shù)據(jù)庫管理指南

    在當(dāng)今數(shù)字化時代,MySQL作為全球最受歡迎的開源關(guān)系型數(shù)據(jù)庫,承載著企業(yè)核心業(yè)務(wù)數(shù)據(jù)的存儲與處理。作為數(shù)據(jù)庫管理員(DBA),掌握MySQL
    的頭像 發(fā)表于 07-09 09:50 ?134次閱讀

    遠程訪問內(nèi)網(wǎng)MySQL數(shù)據(jù)庫?這個方案更簡單

    各位開發(fā)者朋友們,是否還在為無法隨時隨地訪問內(nèi)網(wǎng)MySQL數(shù)據(jù)庫而煩惱?今天分享一個超實用的方法,通過容器部署 MySQL 結(jié)合 ZeroNews 內(nèi)網(wǎng)穿透,讓你在任何地方都能安全訪問和管理數(shù)
    的頭像 發(fā)表于 07-04 18:06 ?184次閱讀
    遠程訪問內(nèi)網(wǎng)<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>?這個方案更簡單

    oracle數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)庫誤執(zhí)行錯誤truncate命令如何恢復(fù)數(shù)據(jù)?

    oracle數(shù)據(jù)庫誤執(zhí)行truncate命令導(dǎo)致數(shù)據(jù)丟失是一種常見情況。通常情況下,oracle數(shù)據(jù)庫誤操作刪除數(shù)據(jù)只需要通過備份恢復(fù)
    的頭像 發(fā)表于 06-05 16:01 ?331次閱讀
    oracle<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—oracle<b class='flag-5'>數(shù)據(jù)庫</b>誤執(zhí)行錯誤<b class='flag-5'>truncate</b>命令如何恢復(fù)<b class='flag-5'>數(shù)據(jù)</b>?

    MySQL數(shù)據(jù)庫采集網(wǎng)關(guān)是什么?有什么功能?

    MySQL數(shù)據(jù)庫采集網(wǎng)關(guān)是一種用于連接、采集、處理并傳輸數(shù)據(jù)MySQL數(shù)據(jù)庫的中間設(shè)備或軟件系統(tǒng),通常部署在
    的頭像 發(fā)表于 05-26 15:20 ?191次閱讀

    MySQL數(shù)據(jù)庫是什么

    MySQL數(shù)據(jù)庫是一種 開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ,由瑞典MySQL AB公司開發(fā),后被Oracle公司收購。它通過結(jié)構(gòu)化查詢語言(SQL)進行
    的頭像 發(fā)表于 05-23 09:18 ?453次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)——MySQL數(shù)據(jù)庫誤刪除表記錄的數(shù)據(jù)恢復(fù)案例

    本地服務(wù)器,安裝的windows server操作系統(tǒng)。 操作系統(tǒng)上部署MySQL單實例,引擎類型為innodb,表空間類型為獨立表空間。該MySQL數(shù)據(jù)庫沒有備份,未開啟binlog。 人為
    的頭像 發(fā)表于 02-22 09:44 ?693次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)——<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>誤刪除表記錄的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)—linux操作系統(tǒng)云服務(wù)器數(shù)據(jù)恢復(fù)案例

    某ECS網(wǎng)站服務(wù)器,linux操作系統(tǒng)+mysql數(shù)據(jù)庫。mysql數(shù)據(jù)庫采用innodb作為默認(rèn)存儲引擎。 在執(zhí)行數(shù)據(jù)庫版本更新測試時,
    的頭像 發(fā)表于 02-10 18:00 ?397次閱讀
    服務(wù)器<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—linux操作系統(tǒng)云服務(wù)器<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    從Delphi、C++ Builder和Lazarus連接到MySQL數(shù)據(jù)庫

    ? 從 Delphi、C++ Builder 和 Lazarus 連接到 MySQL 數(shù)據(jù)庫 MySQL 數(shù)據(jù)訪問組件(MyDAC)是一個組件
    的頭像 發(fā)表于 01-20 13:47 ?746次閱讀
    從Delphi、C++ Builder和Lazarus連接到<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>

    適用于MySQL和MariaDB的Python連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)庫

    和 Linux 的 wheel 包分發(fā)。 直接連接 該解決方案使您能夠通過 TCP/IP 建立與 MySQL 或者 MariaDB 數(shù)據(jù)庫服務(wù)器的直接連接,而無需數(shù)據(jù)庫客戶端。另外
    的頭像 發(fā)表于 01-17 12:18 ?496次閱讀
    適用于<b class='flag-5'>MySQL</b>和MariaDB的Python連接器:可靠的<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>連接器和<b class='flag-5'>數(shù)據(jù)庫</b>

    MySQL數(shù)據(jù)庫的安裝

    MySQL數(shù)據(jù)庫的安裝 【一】各種數(shù)據(jù)庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】
    的頭像 發(fā)表于 01-14 11:25 ?565次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>的安裝

    關(guān)系型數(shù)據(jù)庫和非關(guān)系型區(qū)別

    關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫在多個方面存在顯著差異,主機推薦小編為您整理發(fā)布關(guān)系型數(shù)據(jù)庫和非關(guān)系型區(qū)別,以下是它們的主要區(qū)別
    的頭像 發(fā)表于 01-10 09:58 ?685次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、
    的頭像 發(fā)表于 12-16 11:05 ?616次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫故障: mysql數(shù)據(jù)庫文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫無法進行查詢等操作;2、使用my
    的頭像 發(fā)表于 12-09 11:05 ?635次閱讀

    Oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫delete刪除的數(shù)據(jù)恢復(fù)方法

    刪除Oracle數(shù)據(jù)庫數(shù)據(jù)一般有以下2種方式:delete、droptruncate。下面針對這2種刪除oracle
    的頭像 發(fā)表于 09-11 11:45 ?716次閱讀

    華納云:MySQL初始化操作如何創(chuàng)建新的數(shù)據(jù)庫

    要在MySQL中創(chuàng)建一個新的數(shù)據(jù)庫,可以按照以下步驟進行操作: 登錄到MySQL數(shù)據(jù)庫管理系統(tǒng)中??梢允褂?b class='flag-5'>MySQL命令行客戶端或者圖形化工
    的頭像 發(fā)表于 09-04 14:30 ?551次閱讀