皆可刪除表內資料(DELETE 無 WHERE 時)。
| 維度 | DELETE | TRUNCATE | DROP |
|---|---|---|---|
| 語法 | DELETE FROM t [WHERE...] | TRUNCATE TABLE t | DROP TABLE t |
| 刪除範圍 | 可指定條件刪除部分 | 僅能清空全表 | 刪除表結構與資料 |
| 表結構 | 保留 | 保留(隱式 Drop+Recreate) | 刪除 |
| 語句類型 | DML | DDL | DDL |
| 事務/回滾 | 支援,寫入 Rollback Segment | 不支援,立即生效 | 不支援 |
| 觸發器 | 觸發 ON DELETE | 不觸發 | 不觸發 |
| AUTO_INCREMENT | 保留下一值 | 重置為 1 | 表不存在 |
| 空間/High Water Mark | 不釋放,HWM 不動 | 釋放至 MINEXTENTS (除非 REUSE STORAGE),HWM 歸零 | 完全釋放 |
| 速度 | 最慢 | 中等 | 最快 |
| 鎖類型 | 行鎖 | 表鎖 | 表鎖 |
DELETE WHERE ...(務必加 WHERE)DROP TABLETRUNCATE TABLE(最快)DELETE FROM tableTRUNCATE TABLE t REUSE STORAGE 後重新匯入無備份嚴禁執行 TRUNCATE/DROP,資料不可回滾。生產環境建議軟刪除或先備份。