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

SQL 刪除數據實戰:DELETE 條件刪除 vs TRUNCATE 全表清空差異演示

     編輯:Oracle 資料庫相關知識

DELETE 條件刪除

DELETE FROM scott.test
WHERE empno >= 7500 AND empno <= 8000;
  • 產生 UNDO/REDO,可回滾
  • 觸發器生效
  • 高水位線不變,空間不釋放
  • 適用場景:精確清理、需審計、事務中

執行截圖:

TRUNCATE 全表清空

TRUNCATE TABLE scott.test;
  • DDL 隱式 COMMIT,不可回滾
  • 不觸發觸發器
  • 重置高水位線,瞬間釋放空間 (DROP STORAGE)
  • 極快,適用場景:測試數據重置、分區截斷、ETL 臨時表清空

執行截圖:

核心差異總結表

特性DELETETRUNCATE
命令類型DMLDDL
WHERE 條件支持不支持
回滾可不可
觸發器觸發不觸發
高水位線不變重置
空間釋放否是 (可選 REUSE)
外鍵約束檢查父表被引用不可執行
速度慢 (行級)極快 (元數據級)

選型口訣

精確刪、要回滾、觸發器——用 DELETE;
全表清、求極快、重置 HWM——用 TRUNCATE。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved