程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> DELETE與TRUNCATE有什麼不同

DELETE與TRUNCATE有什麼不同

編輯:關於Oracle數據庫

       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、不能清空父表。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved