#DROP TABLESPACE

# 通用描述

DROP TABLESPACE用于删除一个表空间。

不能删除一个已被某个用户指定的DEFAULT TABLESPACE,必须先通过ALTER USER语句将其变更。

不能删除一个已创建了任何数据库对象的表空间,除非指定了INCLUDING CONTENTS语句。

如果表空间中的分区表或分区索引存在至少一个分区在存储参数里指定了其他的表空间,那么即使指定了INCLUDING CONTENTS语句,该表空间也不能被删除。

如果表空间中存在被其他表空间对象定义的外键约束,那么即使指定了INCLUDING CONTENTS语句,该表空间也不能被删除,除非同时指定了CASCADE CONSTRAINT。

不能删除SYSTEM/SYSAUX/UNDO/SWAP/TEMPORARY/DEFAULT等内置表空间。

# 语句定义

drop tablespace::=

syntax
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND KEEP DATAFILES CASCADE CONSTRAINTS

# tablespace_name

该语句用于指定要删除的表空间名称。

# including contents

该语句用于指定将表空间及其包含的所有对象都删除。

# and|keep datafiles

指定在删除表空间时,其对应的数据文件是被删除,还是被保留,缺省为保留。

# cascade constraints

当存在其他表空间里的对象定义了到本表空间里对象的外键约束时,先将这些外键约束项删除,再删除本表空间。

示例

DROP TABLESPACE yashan3
INCLUDING CONTENTS
KEEP DATAFILES
CASCADE CONSTRAINTS;