功能描述
使用PURGE 语句可以实现如下功能:
从回收站中清理表或索引,并释放对象相关的全部空间。
清理回收站。
清理回收站中指定表空间的对象。
注意事项
清除(PURGE)操作支持:表(PURGE TABLE)、索引(PURGE INDEX)、回收站
(PURGE RECYCLEBIN)。
执行PURGE 操作的权限要求如下:
PURGE TABLE:
用户必须是表的所有者,
且用户必须拥有表所在模式的USAGE 权限,
系统管理员默认拥有此权限。
PURGE INDEX:用户必须是索引的所有者,用户必须拥有索引所在模式的USAGE 权
限,系统管理员默认拥有此权限。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1202
PURGE RECYCLEBIN:普通用户只能清理回收站中当前用户拥有的对象,且用户必须
拥有对象所在模式的USAGE 权限,系统管理员默认可以清理回收站所有对象。
语法格式
PURGE { TABLE [schema_name.]table_name
| INDEX index_name
| RECYCLEBIN
}
参数说明
schema_name
模式名。
TABLE [ schema_name. ] table_name
清空回收站中指定的表。
INDEX index_name
清空回收站中指定的索引。
RECYCLEBIN
清空回收站中的对象。
示例
-- 创建表空间reason_table_space
gbase=# CREATE TABLESPACE REASON_TABLE_SPACE1 owner tpcds RELATIVE
location 'tablespace/tsp_reason1';
-- 在表空间创建表tpcds.reason_t1
gbase=# CREATE TABLE tpcds.reason_t1
(
r_reason_sk
integer,
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1203
r_reason_id
character(16),
r_reason_desc
character(100)
) tablespace reason_table_space1;
-- 在表空间创建表tpcds.reason_t2
gbase=# CREATE TABLE tpcds.reason_t2
(
r_reason_sk
integer,
r_reason_id
character(16),
r_reason_desc
character(100)
) tablespace reason_table_space1;
-- 在表空间创建表tpcds.reason_t3
gbase=# CREATE TABLE tpcds.reason_t3
(
r_reason_sk
integer,
r_reason_id
character(16),
r_reason_desc
character(100)
) tablespace reason_table_space1;
-- 对表tpcds.reason_t1 创建索引
gbase=# CREATE INDEX index_t1 on tpcds.reason_t1(r_reason_id);
gbase=# DROP TABLE tpcds.reason_t1;
gbase=# DROP TABLE tpcds.reason_t2;
gbase=# DROP TABLE tpcds.reason_t3;
--查看回收站
gbase=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
rcyname
| rcyoriginname | rcytablespace
-----------------------+---------------+---------------
BIN$16409$2CEE988==$0 | reason_t1
|
16408
BIN$16412$2CF2188==$0 | reason_t2
|
16408
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1204
BIN$16415$2CF2EC8==$0 | reason_t3
|
16408
BIN$16418$2CF3EC8==$0 | index_t1
|
0
(4 rows)
--PURGE 清除表
gbase=# PURGE TABLE tpcds.reason_t3;
gbase=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
rcyname
| rcyoriginname | rcytablespace
-----------------------+---------------+---------------
BIN$16409$2CEE988==$0 | reason_t1
|
16408
BIN$16412$2CF2188==$0 | reason_t2
|
16408
BIN$16418$2CF3EC8==$0 | index_t1
|
0
(3 rows)
--PURGE 清除索引
gbase=# PURGE INDEX tindex_t1;
gbase=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
rcyname
| rcyoriginname | rcytablespace
-----------------------+---------------+---------------
BIN$16409$2CEE988==$0 | reason_t1
|
16408
BIN$16412$2CF2188==$0 | reason_t2
|
16408
(2 rows)
--PURGE 清除回收站所有对象
gbase=# PURGE recyclebin;
gbase=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
rcyname
| rcyoriginname | rcytablespace
-----------------------+---------------+---------------
(0 rows)
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1205