更新時間:2022-08-05 來源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
1、刪除內(nèi)容:drop操作會刪除表結(jié)構(gòu)、依賴的約束、索引以及觸發(fā)器,并且會將依賴該表的所有存儲過程和視圖設(shè)置為invalid;而truncate和delete則是只會刪除表中的數(shù)據(jù),并不會刪除表結(jié)構(gòu)。因此如果該表以后不再需要的話可以使用drop,而如果后續(xù)還需要的話可以通過truncate或delete,因?yàn)檫@樣可以不需要再重新建立表。
2、刪除空間:delete操作并不會更改所占用的區(qū)的空間,高水位線不會發(fā)生改變。drop操作就會直接刪除整個表空間,而執(zhí)行truncate則是相對于先執(zhí)行drop操作,然后在執(zhí)行create操作,執(zhí)行完成后會恢復(fù)初始的表空間。
3、語句類型:delete 語句是DML語句,這個操作會放到 rollback segement
中,事務(wù)提交之后才生效;并且可以執(zhí)行對應(yīng)的觸發(fā)器。但truncate、drop是DDL操作,會包含implicit
commit,因此不能回滾,也不能不觸發(fā)觸發(fā)器。
4、效率:從第二點(diǎn)的描述中可以推斷truncate的執(zhí)行效率要低于drop操作;而delete操作則是按照行記錄一行一行的進(jìn)行刪除,因此其效率更低。
5、安全性:使用 drop 和 truncate會導(dǎo)致整個表中的數(shù)據(jù)都被刪除,需格外注意。如果僅想刪除部分?jǐn)?shù)據(jù)可用delete,但是需要注意where子句得到的范圍,會占用rollback segement。
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營】深圳跨境電商運(yùn)營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19