當前位置:編程學習大全網 - 編程軟體 - 截斷和刪除有什麽區別?

截斷和刪除有什麽區別?

截斷和刪除之間的主要區別:

1,刪除是DML。執行刪除操作時,壹次從表中刪除壹行,同時,該行的刪除操作被記錄在重做和撤消表空間中,用於回滾和重做操作。但是需要註意的是,表空間足夠大,在手動提交操作之後才能生效,操作可以通過回滾來撤銷。

2.刪除可以根據條件刪除表中符合條件的數據。如果不指定where子句,表中的所有記錄都將被刪除。

3.delete語句不會影響表所占用的範圍,並且高水位線保持不變。

4.truncate是DDL,將隱式提交。因此,它不能回滾,也不會觸發觸發器。

5.truncate將刪除表中的所有記錄,並重置高水位線和所有索引。默認情況下,它會將空間釋放到minextent擴展區,除非使用重用存儲。不記錄日誌,所以執行速度很快,但是不能通過rollback撤銷操作(如果不小心截斷了壹個表,可以恢復,但是不能通過rollback恢復)。

6.對於foreignkey約束引用的表,不能使用truncate table,只能使用不帶where子句的delete語句。

7.truncatetable不能用於參與索引視圖的表。

擴展數據:

從速度上來說,壹般來說,截斷?& gt?刪除.?

如果想保留表,刪除所有數據,如果與事務無關,就用truncate。

如果它與壹個事務相關,或者如果您想要觸發壹個觸發器,您仍然使用delete。

參考資料:

截斷(電腦功能)-百度百科

刪除(編程語言)-百度百科

  • 上一篇:js怎麽寫2秒後再刷新當前頁面
  • 下一篇:單片機怎麽接收壓電陶瓷發出電信號
  • copyright 2024編程學習大全網