表管理之四:刪除資料Delete與truncate的使用區別
本部落格詳細講Delete與truncate的使用區別。
SQL> select * from totalnum;
T1 T2
---------- ----------
3 12
4 15
5 20
10 100
100 1000
500 5000
6 rows selected.
1、刪除一條資料不提交:
SQL> delete from totalnum where t2=5000;
1 row deleted.
1》 刪除後查詢:
SQL> select * from totalnum;
T1 T2
---------- ----------
3 12
4 15
5 20
10 100
100 1000
2》回滾:
SQL> rollback;
Rollback complete.
3》回滾後查詢:
SQL> select * from totalnum;
T1 T2
---------- ----------
3 12
4 15
5 20
10 100
100 1000
500 5000
6 rows selected.
2、全部刪除:
SQL> delete from totalnum;
6 rows deleted.
1》 刪除後查詢
SQL> select * from totalnum;
no rows selected
2》回滾:
SQL> rollback;
Rollback complete.
3》回滾後查詢:
SQL> select * from totalnum;
T1 T2
---------- ----------
3 12
4 15
5 20
10 100
100 1000
500 5000
6 rows selected.
3、刪除並提交任務:
SQL> delete from totalnum where t2=5000;
1 row deleted.
1》提交刪除任務:
SQL> commit;
Commit complete.
2》提交後查詢:
SQL> select * from totalnum;
T1 T2
---------- ----------
3 12
4 15
5 20
10 100
100 1000
3》回滾:
SQL> rollback;
Rollback complete.
4》回滾後查詢:
SQL> select * from totalnum;
T1 T2
---------- ----------
3 12
4 15
5 20
10 100
100 1000
4、Truncate的用法:
SQL> truncate totalnum;
truncate totalnum
*
ERROR at line 1:
ORA-03290: Invalid truncate command - missing CLUSTER or TABLE keyword
以上報錯,說明語法錯誤。
SQL> truncate table totalnum;
Table truncated.
1》刪除後查詢:
SQL> select * from totalnum;
no rows selected
2》回滾:
SQL> rollback;
Rollback complete.
3》回滾後查詢:
SQL> select * from totalnum;
no rows selected
以上的一系列測試表明:delete語句刪除後的資料會被儲存到撤銷表空間中,可以進行資料撤銷。只有刪除後,並提交刪除任務
commit操作後,資料不放回撤銷表空間。而truncate在刪除資料時,在進行刪除操作的同時,也進行了commit操作。刪除後的數
據不放回撤銷表空間,是徹底刪除了,而且是整張表的資料刪除。delete可以進行選擇性刪除,所以在進行操作刪除的動作之前,
要考慮清楚,應該用哪一個語句進行刪除,兩個語句各有各的優點與缺點。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2125881/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- delete和truncate刪除的區別delete
- truncate與delete的區別delete
- oracle truncate 與 delete 的區別Oracledelete
- 資料庫:drop、truncate、delete的區別資料庫delete
- truncate delete 的區別delete
- delete/truncate刪除資料索引空間問題delete索引
- SQL truncate 、delete與drop區別SQLdelete
- 為什麼當刪除整個表中的資料時,需使用TRUNCATE代替DELETEdelete
- 面試題: 資料庫:delete和trancate刪除表記錄的區別面試題資料庫delete
- zt_orafaq_delete與truncate的區別delete
- truncate和delete 的區別delete
- truncate delete drop 區別delete
- Truncate table 詳解及與delete,drop 的區別delete
- Truncate table詳解及與delete,drop的區別delete
- mysql資料庫中刪除資料的三種形式 drop和 truncate 和 deleteMySql資料庫delete
- Oracle中truncate和delete的區別Oracledelete
- 大資料表的truncate,列刪除,shrink回收高水位大資料
- 表管理之二:表資料的插入修改與刪除
- SQLSERVER 的 truncate 和 delete 有區別嗎?SQLServerdelete
- MySQL(四) 資料表的插入、更新、刪除資料MySql
- Oracle中truncate和delete的區別(例項)Oracledelete
- drop、delete 與truncatedelete
- update,delete與INNER JOIN 以及刪除重複資料delete
- truncate table 誤刪除資料後的恢復
- oracle實驗記錄 (基礎,truncate與delete區別實驗)Oracledelete
- truncate和不帶where子句的delete, 以及drop區別delete
- 循序漸進oracle第8章:Oracle的閃回特性之恢復truncate刪除表的資料Oracle
- Elasticsearch增刪改查 之 —— Delete刪除Elasticsearchdelete
- rman 中delete 與delete force 的區別delete
- 【北亞資料庫資料恢復】使用delete未加where子句刪除全表資料的Mysql資料庫資料恢復資料庫資料恢復deleteMySql
- MySQL防止delete命令刪除資料的兩種方法MySqldelete
- 使用PreparedStatement向資料表中插入、修改、刪除、獲取Blob型別的資料型別
- 資料庫 - 索引、基本表建立與刪除資料庫索引
- [轉][資料庫SQL語句]truncate/delete/drop同與不同資料庫SQLdelete
- MySQL刪除資料表MySql
- 刪除大表資料
- React實現表單資料的新增與刪除React
- delete 刪除資料 全表掃描還是掃描所有塊的測試delete