truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。
delete属于DML,可以回滚
delete table
删除表中的行,一行一行执行,不删除结构
drop table 抹去表,包括结构和内容
---------------------------------------------------------------------
执行效率上来说:drop>truncate>delete
-------------------------------------------
安全性上来:drop和truncate都属于DDL语言,无法使用ROLLBACK
--------------------------------------------------------------------
使用上:
想删除部分数据行用delete,回滚段要足够大.
想删除表,用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据
想删除表,用drop
想保留表而将所有数据删除.
如果是整理表内部的碎片,可以用truncate跟上reuse
-------------------------------------------------------------------
下面是考试题对truncate