虽然实际工作中很少进行删除表空间的操作,但是掌握删除表空间的方法还是有必要的。由于表空间中存储了表、视图、索引等数据对象,删除表空间必然带来数据流失,所以达梦数据库对删除表空间有严格的限制。我既可以运用SQL命令来删除表空间,也可以通过DM管理工具来删除表空间,下面进行分别介绍。
一、用SQL命令删除表空间
1、语法格式
删除表空间的SQL命令格式如下:
DROP TABLESPACE <表空间名>;
2、应用举例
例1、删除表空间TEST1
SQL>DROP TABLESPACE TEST1;
如果TEST1表空间存在数据,则不能直接删除表空间。
例2、试图删除TEMP表空间
SQL> DROP TABLESPACE TEMP;
DROP TABLESPACE TEMP;
第一行附近出现错误[-3418];系统表空间[TEMP]不能被删除.
这个例子说明删除白哦空间是有限制的,数据库安装过程中系统创建的表空间SYSTEM、TEMP等不允许删除。如果表空间已经存在数据对象,则该表空间也不允许删除。
3、附加说明
- SYSTEM、RLOG、ROLL和TEMP表空间是不允许删除的。
- 用该语句的用户必须具有DBA的权限。
- 系统处于SUSPEND或MOUNT状态时不允许删除表空间,系统只有处于OPEN状态下才允许删除表空间。
- 如果表空间存放了数据,则不允许删除表空间。如果确实要删除表空间,则必须先删除表空间中的数据对象。
二、用管理工具删除表空间
例3、删除表空间EXAMPLE2
步骤1:在如图1所示右击表空间EXAMPLE2,在弹出的弹出的快捷菜单选择“删除”选项,进入删除表空间主界面,如图2。