小编典典

为什么截断DDL语句?

sql

在truncate语句之后,表结构保持不变,并且仅删除记录(使用自动提交)。那么,截断是DDL语句的原因是什么?


阅读 157

收藏
2021-04-22

共1个答案

小编典典

我将在此处添加一些解释:默认情况下,截断表时,您不仅在删除行,还隐式地告诉Oracle数据库也执行以下任务:

取消分配被删除的行使用的所有空间,除非由MINEXTENTS存储参数指定

将NEXT存储参数设置为通过截断过程从段中删除的最后一个扩展区的大小

因此,它通过重置高水位标记来更改存储定义和更改表的结构。

也不能是DML,对吗?无法指定where子句或DDL语句附带该子句。如果truncate是DML语句,那么Oracle将允许我们将truncate与where子句一起使用。
注意:SQL中的WHERE子句指定SQL数据操作语言(DML)语句应仅影响满足指定条件的行。

2021-04-22