截斷操作的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所示。表明成功完成表的截斷。