關於從Oracle數據庫中刪除表數據


1,刪除表 drop

  • 1.1 執行drop table table_name  語句

    被 drop后的表被放在用戶回收站(user_recyclebin)里,而沒有被直接刪除掉,回收站里的表可以被恢復。 通過查詢回收站user_recyclebin獲取被刪除的表信息,然后使用語句如下語句:

    flashback table user_recyclebin.object_name [user_recyclebin.original_name]  to before drop [rename to new_table_name];

    將回收站里的表恢復為原名稱或指定新名稱。

  • 1.2 若要徹底刪除表,則使用語句:drop table table_name purge;

    該語句表示:不放入回收站,直接刪除。

  • 1.3 drop含有外鍵的表

    drop table table_name cascade constraints;     
    ---也稱為稱為級聯刪除 ,何相關視圖和完整性約束一並被刪除。

     

2,刪除表中的數據 

  • 2.1 delete 

    delete 操作適用於刪除表中的部分數據,而不是全部的數據。如果使用delete刪除表中的所有行,表中的數據雖然被刪除,單是高水位線並不會被釋放。

  • 2.2  truncate操作是把表里的信息全部刪除,並將高水位線置為0,同時截除表上的相關索引。
    truncate table  table_name;
    Truncate不支持回滾,

    不能truncate一個帶有外鍵的表,如果要刪除首先要取消外鍵,然后再刪除。

    truncate table 后,有可能表空間仍沒有釋放。

    可以使用如下語句釋放: 

alter table table_name deallocate   UNUSED KEEP 0;  
alter table emp deallocate   UNUSED KEEP 0; 
--或者在清除數據時,一並回收存儲空間:  
TRUNCATE TABLE table_name DROP(REUSE) STORAGE;  
--例如:
 truncate table  test1 DROP STORAGE; 

 

 

 

注明:本博文系總結多個博文和Oracle專業文檔,並經過本人驗證總結而成,如有侵權請聯系本人加以注明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM