刪除表中的數(shù)據(jù)的方法有delete,truncate,
它們都是刪除表中的數(shù)據(jù),而不能刪除表結(jié)構(gòu),delete 可以刪除整個(gè)表的數(shù)據(jù)也可以刪除表中某一條或N條滿足條件的數(shù)據(jù),而truncate只能刪除整個(gè)表的數(shù)據(jù),一般我們把delete 操作叫作刪除表,而truncate操作叫作截?cái)啾?
truncate 操作與 delete 操作對(duì)比
操作
回滾
高水線
空間
效率
Truncate
不能
下降
回收
快
delete
可以
不變
不回收
慢
TRUNCATE和DELETE有以下幾點(diǎn)區(qū)別
1、TRUNCATE在各種表上無(wú)論是大的還是小的都非??臁H绻蠷OLLBACK命令DELETE將被撤銷(xiāo),而TRUNCATE則不會(huì)被撤銷(xiāo)。
2、TRUNCATE是一個(gè)DDL語(yǔ)言,向其他所有的DDL語(yǔ)言一樣,他將被隱式提交,不能對(duì)TRUNCATE使用ROLLBACK命令。
3、TRUNCATE將重新設(shè)置高水平線和所有的索引。在對(duì)整個(gè)表和索引進(jìn)行完全瀏覽時(shí),經(jīng)過(guò)TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能觸發(fā)任何DELETE觸發(fā)器。
5、不能授予任何人清空他人的表的權(quán)限。
6、當(dāng)表被清空后表和表的索引將重新設(shè)置成初始大小,而delete則不能。
7、不能清空父表。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄