#DROP TABLE

# 通用描述

DROP TABLE语句用于删除表对象(包括建立其上面的索引、约束、触发器等对象),同时该表的数据被删除,该表及索引所占数据空间被全部释放。

DROP 操作删除了表对象的所有相关定义,如需再次使用该表,只能按创建新表的方式进行重建。

DROP 操作不能回滚(Rollback),也不能通过flashback_query_clause获得操作之前的数据。如果指定了PURGE语句,则也无法从回收站恢复。

当需要DROP被子表定义了外键约束的父表时,需要指定CASCADE CONSTRAINTS。

当需要DROP已建立了AC的源表时,需先DROP该表上全部的AC后,才可以DROP该表。

# 语句定义

drop table::=

syntax
DROP TABLE IF EXISTS schema . table_name CASCADE CONSTRAINTS PURGE

# if exists

该语句用于指定在DROP 表之前,先判断该表是否存在,省略则不会判断,此时如果要删除的表不存在,系统将提示错误。

示例

--DROP不存在的表area1
DROP TABLE IF EXISTS area1;

# cascade constraints

该语句只作用于单机HEAP表,用于指定当表被子表定义了外键约束时,先删除子表上的外键约束项,再DROP该表。

示例

--area的子表branches表上定义的外键约束被删除
DROP TABLE area CASCADE CONSTRAINTS;

# purge

该语句用于指定彻底删除表,而不是进入回收站(ReclycleBin)。分布式部署中无法使用本语句。

YashanDB的配置参数里定义了是否使用回收站的开关,即RECYCLYBIN参数。当RECYCLEBIN设置为ON时,执行DROP TABLE时系统会将表对象及数据放入回收站(表名称被修改为BIN开头的系统生成字符串),用于误操作之后的恢复。

如果显式指定了PURGE语句,则DROP的表对象及数据不会进入回收站,而是被彻底删除,无法恢复。

示例

DROP TABLE area PURGE;
pdf-btn 下载文档
copy-btn 复制链接