DB2 V9.7 for Linux, UNIX, and Windows

删除数据分区

要删除数据分区,请拆离该分区,然后删除由拆离操作创建的表。使用带有 DETACH PARTITION 子句的 ALTER TABLE 语句拆离分区并创建独立表,然后使用 DROP TABLE 语句删除该表。

关于此任务

要拆离分区表的数据分区,请发出带 DETACH PARTITION 子句的 ALTER TABLE 语句。

在以下示例中,将数据分区 dec01 从表 STOCK 中拆离并放到表 JUNK 中。确定异步分区拆离任务已经使 目标表 JUNK 可用之后,可以删除表 JUNK,从而有效地删除相关数据分区。
    ALTER TABLE stock DETACH PART dec01 INTO junk;
     -- After the target table becomes available, issue the DROP TABLE statement 
    	DROP TABLE junk;
注: 为了使 ALTER TABLE...DETACH 在 DB2® 版本 9.7 FP 1 及更高发行版中尽可能快地执行,异步分区拆离任务以异步方式完成拆离操作。如果有已拆离的从属表,那么异步分区拆离任务将不会开始且已拆离数据分区不会变成独立表。在这种情况下,必须对所有已拆离的从属表发出 SET INTEGRITY 语句。在 SET INTEGRITY 完成后,异步分区拆离任务将会开始并使目标表可访问。目标表可访问时,就可以将其删除。

开始之前

要从分区表拆离数据分区,用户必须拥有下列权限或特权: 要删除表,用户必须拥有下列权限或特权:
注: 拆离数据分区情况的含义是,语句的授权标识实际上将要发出 CREATE TABLE 语句,所以必须拥有执行该操作所必需的特权。表空间就是正在拆离的数据分区所在的表空间。ALTER TABLE 语句的授权标识将成为新表的定义者(具有 CONTROL 权限),就像是该用户发出了 CREATE TABLE 语句一样。不会将所改变的表的任何特权传递至新表。只有 ALTER TABLE 语句的授权标识以及 DBADM 或 SYSADM 才有权在 ALTER TABLE ...DETACH PARTITION 操作执行后立即访问数据。