首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle DROP、DELETE、TRUNCATE 三大差異速查表

     編輯:Oracle 資料庫相關知識
指令作用範圍是否可回滾觸發器高水位標記(HWM)速度
DROP TABLE刪除整個表(結構+資料+索引+權限)不可(DDL 隱性提交)不觸發釋放所有空間最快
TRUNCATE TABLE刪除所有資料,保留結構不可(DDL 隱性提交)不觸發重置 HWM 至初始極快(不逐列處理)
DELETE FROM ...逐列刪除,可配合 WHERE 條件可回滾(DML)觸發 DELETE 觸發器不變更 HWM較慢(逐列、產生 UNDO/REDO)

關鍵差異補充

  • TRUNCATE vs DELETE:TRUNCATE 為 DDL,直接釋放區段空間並重置 HWM,不產生大量 UNDO/REDO,效能遠優於 DELETE。但無法針對特定列,也無法回滾。
  • DROP:徹底移除物件,連同相依物件(索引、約束、權限)一併刪除,慎用。
  • 權限:TRUNCATE 需 DROP ANY TABLE 或擁有者權限;DELETE 僅需 DELETE 權限。

選擇建議

  • 需保留表結構、清空全表資料、不需回滾 → TRUNCATE
  • 需條件刪除、需回滾、觸發觸發器 → DELETE
  • 永久移除表、重建結構 → DROP
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved