截断操作的SQL语法如下。
―――――――――――――――――――――――――――――――――――――
TRUNCATE TABLE 用户名.表名 [DROP|REUSE STORAGE]
―――――――――――――――――――――――――――――――――――――
其中,若使用“DROP STORAGE”子句,显式指明释放数据表和索引的空间。若使用“REUSE STORAGE”子句,显式指明不释放数据表和索引的空间。下面以截断数据表scott.director为例进行介绍。
(1)在【SQLPlus Worksheet】中执行SQL代码,结果如图7.32所示。
―――――――――――――――――――――――――――――――――――――
truncate table scott.director drop storage;
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:\第7章\truncatedirector.sql。
(2)结果表明无法完成截断操作。这是因为导师信息表是父表,研究生信息表引用导师信息表字段作为外码。
(3)因此,必须首先将scott.student的外码关系失效。在【SQLPlus Worksheet】中执行下列代码。执行结果如图7.33所示。
―――――――――――――――――――――――――――――――――――――
alter table scott.student
disable constraint "导师编号外码";
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:\第7章\ disableconstraint.sql。
(4)重新在【SQLPlus Worksheet】中执行truncatedirector.sql,结果如图7.34所示。表明成功完成表的截断。