ALTER TABLE…DROP SUBPARTITION 命令用於刪除子分區及儲存在子分區內的資料。
文法介紹
使用ALTER TABLE…DROP SUBPARTITION 命令來刪除子分區定義及子分區內的資料。文法如下:
ALTER TABLE table_name DROP SUBPARTITION subpartition_name;
描述
ALTER TABLE…DROP SUBPARTITION 命令用於刪除子分區及儲存在子分區內的資料。要使用DROP SUBPARTITION 子句,您必須是分區根的擁有者、擁有表的小組成員或有超級使用者或管理員的許可權。
參數
參數 | 參數說明 |
table name | 分區表的名稱(可以採用模式限定的方式引用)。 |
subpartition name | 要刪除的子分區名稱。 |
樣本 – 刪除子分區
下列樣本刪除了表sales中的一個子分區。通過使用下列命令來建立表sales:
CREATE TABLE sales
(
dept_no number,
part_no varchar2,
country varchar2(20),
date date,
amount number
)
PARTITION BY RANGE(date)
SUBPARTITION BY LIST (country)
(
PARTITION first_half_2012 VALUES LESS THAN('01-JUL-2012')
(
SUBPARTITION europe VALUES ('ITALY', 'FRANCE'),
SUBPARTITION americas VALUES ('CANADA', 'US'),
SUBPARTITION asia VALUES ('PAKISTAN', 'INDIA')
),
PARTITION second_half_2012 VALUES LESS THAN('01-JAN-2013')
);
查詢檢視ALL_TAB_SUBPARTITIONS 顯示了子分區的名稱:
acctg=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
subpartition_name | high_value
-------------------+---------------------
europe | 'ITALY', 'FRANCE'
americas | 'CANADA', 'US'
asia | 'PAKISTAN', 'INDIA'
(3 rows)
要從表sales中刪除子分區americas,就要先調用下列命令:
ALTER TABLE sales DROP SUBPARTITION americas;
查詢檢視ALL_TAB_SUBPARTITIONS顯示了子分區已被成功刪除:
acctg=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
subpartition_name | high_value
-------------------+---------------------
europe | 'ITALY', 'FRANCE'
asia | 'PAKISTAN', 'INDIA'
(2 rows)