truncate和delete 的區別
SQL> create table t1
2 ( i int,
3 a int
4 );
表已建立。
SQL> insert into t1 values (2,3);
已建立 1 行。
SQL> commit;
提交完成。
SQL> insert into t1 values (3,4);
已建立 1 行。
SQL> commit;
提交完成。
SQL> select * from t1;
I A
---------- ----------
2 3
3 4
SQL> delete t1;
已刪除2行。
SQL> desc t1;
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
I NUMBER(38)
A NUMBER(38)
SQL> rollback;
回退已完成。
SQL> select * from t1;
I A
---------- ----------
2 3
3 4
SQL> delete t1 where i=3;
已刪除 1 行。
SQL> select * from t1;
I A
---------- ----------
2 3
SQL> rollback;
回退已完成。
SQL> select * from t1;
I A
---------- ----------
2 3
3 4
SQL> delete t1 where i=3;
已刪除 1 行。
SQL> commit;
提交完成。
SQL> select * from t1;
I A
---------- ----------
2 3
SQL> rollback;
回退已完成。
SQL> select * from t1;
I A
---------- ----------
2 3
SQL> select * from t1;
I A
---------- ----------
2 3
SQL> insert into t1 values (3,4);
已建立 1 行。
SQL> select * from t1;
I A
---------- ----------
2 3
3 4
SQL> truncate t1;
truncate t1
*
第 1 行出現錯誤:
ORA-03290: 無效的截斷命令 - 缺失 CLUSTER 或 TABLE 關鍵字
SQL> truncate table t1;
表被截斷。
SQL> desc t1;
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
I NUMBER(38)
A NUMBER(38)
SQL> rollback;
回退已完成。
SQL> select * from t1;
未選定行
實驗結果:truncate 是DDL語句,自帶隱式commit,不可rollback,而delete 在沒有commit的前提下是可以進行回滾的。
操作 |
回滾 |
高水線 |
空間 |
效率 |
Truncate |
不能 |
下降 |
回收 |
快 |
delete |
可以 |
不變 |
不回收 |
慢 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21416913/viewspace-718635/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- truncate delete 的區別delete
- delete和truncate刪除的區別delete
- Oracle中truncate和delete的區別Oracledelete
- truncate與delete的區別delete
- SQLSERVER 的 truncate 和 delete 有區別嗎?SQLServerdelete
- truncate delete drop 區別delete
- oracle truncate 與 delete 的區別Oracledelete
- Oracle中truncate和delete的區別(例項)Oracledelete
- SQL truncate 、delete與drop區別SQLdelete
- truncate和不帶where子句的delete, 以及drop區別delete
- 資料庫:drop、truncate、delete的區別資料庫delete
- zt_orafaq_delete與truncate的區別delete
- Truncate table 詳解及與delete,drop 的區別delete
- Truncate table詳解及與delete,drop的區別delete
- delete 和 delete [] 的真正區別delete
- truncate 和 delete 的效能對比delete
- drop table和truncate table的區別
- 簡述truncate、delete和dropdelete
- delete table 和 truncate table - 型別安全的心 - 部落格園delete型別
- HWM和delete,drop,truncate的關係delete
- 表管理之四:刪除資料Delete與truncate的使用區別delete
- RMAN 中delete exipired 和 delete obsolete 的區別delete
- rman 中的 delete all input 和 delete input 的區別delete
- oracle實驗記錄 (基礎,truncate與delete區別實驗)Oracledelete
- MySQL和Oracle中的delete,truncate對比MySqlOracledelete
- 深入解析delete和truncate不同之處:delete
- Diffrence Between delete and truncatedelete
- truncate 比 delete 慢delete
- drop、delete 與truncatedelete
- SQL – TRUNCATE vs DELETESQLdelete
- malloc/free 和 new /delete 的區別 (轉)delete
- Truncate,Delete,Drop的比較.delete
- truncate 比 delete 慢的原因。delete
- rman 中delete 與delete force 的區別delete
- 詳解SQL中drop、delete和truncate的異同SQLdelete
- laravel中delete()方法和destroy()方法的區別Laraveldelete
- truncate,delete,drop的異同點delete
- 資料庫關鍵詞 drop、truncate和delete的用法資料庫delete