Oracle delete truncate drop 的区别
1.?delete/truncate?只刪除數(shù)據(jù)不刪除表,索引的結(jié)構(gòu)。?drop?將刪除表的結(jié)構(gòu)及依賴的?index/constrain/trigger,依賴于該表的?procedure/function?將保留,但是變?yōu)?invalid?狀態(tài);
?
2.?delete?是?dml,寫(xiě)?rollback?segement,可回滾,速度慢,事務(wù)提交之后才生效。在?9i?滿足?undo_retention?條件下可使用?flashback。一次性大批量數(shù)據(jù)的?delete?可能導(dǎo)致回滾段急劇擴(kuò)展從而影響到數(shù)據(jù)庫(kù),慎用,觸發(fā)?trigger。?truncate/drop?是?ddl,隱式提交,不寫(xiě)?rollback?segment,不能回滾,速度快。9i?不能使用?flashback,不觸發(fā)?trigger;
3.?delete?不影響表所占用的?extent,HWM?保持原位置不動(dòng),即使刪除的是最靠近?HWM?的數(shù)據(jù)。delete?其實(shí)也可以釋放空間,但是不降低?HWM,delete?后?block?的空閑空間達(dá)到?pct_used,就可以重用。?truncate?缺省情況下將空間(表和索引)釋放到?minextents?個(gè)?extent,除非使用?reuse?storage。truncate?會(huì)將高水線復(fù)位(回到最開(kāi)始)。?drop?將表所占用的空間全部釋放,segment?不存在,無(wú)所謂?HWM?的概念;
Oracle?高水位(HWM)?
http://blog.csdn.net/tianlesoftware/archive/2009/10/22/4707900.aspx?????????
???
4.?truncate/drop?的對(duì)象必須是本模式下的,或者被授予?drop?any?table?的權(quán)限,但?drop?any?table?權(quán)限不能?truncate/drop?sys?的表。?delete?的對(duì)象必須是本模式下的,或者被授予?delete?on?SCHEMA.table?或?delete?any?table?的權(quán)限,但?delete?any?table?權(quán)限不能?delete?sys?的表;
5.?不能?truncate?一個(gè)帶有?enable?外鍵的表,不管表里有沒(méi)有數(shù)據(jù),如果要?truncate,首先要?disable?外鍵或者刪除外鍵(drop?外鍵的表肯定是刪除了外鍵)。不能?drop?一個(gè)帶有?enable?外鍵的表,不管表里有沒(méi)有數(shù)據(jù),如果要?drop,首先要?jiǎng)h除外鍵,或者直接用?drop?table?TABLE_NAME?cascade?constraints;?級(jí)聯(lián)刪除外鍵。?delete?可以。
?
轉(zhuǎn)載自網(wǎng)絡(luò)
------------------------------------------------------------------------------?
Blog:?http://blog.csdn.net/tianlesoftware?
網(wǎng)上資源:?http://tianlesoftware.download.csdn.net?
相關(guān)視頻:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx?
DBA1?群:62697716(滿);?DBA2?群:62697977
??
轉(zhuǎn)載于:https://www.cnblogs.com/zlja/archive/2010/06/19/2449862.html
總結(jié)
以上是生活随笔為你收集整理的Oracle delete truncate drop 的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 老机型能更新鸿蒙,华为和荣耀老机型用户有
- 下一篇: mybatis一对多关联查询_Mybat