萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> DELETE與TRUNCATE有什麼不同

DELETE與TRUNCATE有什麼不同

   DELETE與TRUNCATE有什麼不同

  刪除表中的數據的方法有delete,truncate,

  它們都是刪除表中的數據,而不能刪除表結構,delete 可以刪除整個表的數據也可以刪除表中某一條或N條滿足條件的數據,而truncate只能刪除整個表的數據,一般我們把delete 操作叫作刪除表,而truncate操作叫作截斷表.

  truncate 操作與 delete 操作對比

  操作

  回滾

  高水線

  空間

  效率

  Truncate

  不能

  下降

  回收

  快

  delete

  可以

  不變

  不回收

  慢

  TRUNCATE和DELETE有以下幾點區別

  1、TRUNCATE在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷。

  2、TRUNCATE是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。

  3、TRUNCATE將重新設置高水平線和所有的索引。在對整個表和索引進行完全浏覽時,經過TRUNCATE操作後的表比DELETE操作後的表要快得多。

  4、TRUNCATE不能觸發任何DELETE觸發器。

  5、不能授予任何人清空他人的表的權限。

  6、當表被清空後表和表的索引將重新設置成初始大小,而delete則不能。

  7、不能清空父表。

copyright © 萬盛學電腦網 all rights reserved