PURGE

    • 从回收站中清理表或索引,并释放对象相关的全部空间。
    • 清理回收站。
    • 清理回收站中指定表空间的对象
    • 清除(PURGE)操作支持:表(PURGE TABLE)、索引(PURGE INDEX)、回收站(PURGE RECYCLEBIN)。

    • 执行PURGE操作的权限要求如下:

      • PURGE TABLE:用户必须是表的所有者,且用户必须拥有表所在模式的USAGE权限,系统管理员默认拥有此权限。
      • PURGE INDEX:用户必须是索引的所有者,用户必须拥有索引所在模式的USAGE权限,系统管理员默认拥有此权限。
      • PURGE RECYCLEBIN:普通用户只能清理回收站中当前用户拥有的对象,且用户必须拥有对象所在模式的USAGE权限,系统管理员默认可以清理回收站所有对象。
    • 模式名。

    • TABLE [ schema_name. ] table_name

    • INDEX index_name

      清空回收站中指定的索引。

    • 清空回收站中的对象。

    1. openGauss=# CREATE TABLESPACE REASON_TABLE_SPACE1 owner tpcds RELATIVE location 'tablespace/tsp_reason1';
    2. -- 在表空间创建表tpcds.reason_t1
    3. openGauss=# CREATE TABLE tpcds.reason_t1
    4. (
    5. r_reason_sk integer,
    6. r_reason_id character(16),
    7. r_reason_desc character(100)
    8. -- 在表空间创建表tpcds.reason_t2
    9. openGauss=# CREATE TABLE tpcds.reason_t2
    10. (
    11. r_reason_sk integer,
    12. r_reason_id character(16),
    13. r_reason_desc character(100)
    14. ) tablespace reason_table_space1;
    15. -- 在表空间创建表tpcds.reason_t3
    16. openGauss=# CREATE TABLE tpcds.reason_t3
    17. (
    18. r_reason_sk integer,
    19. r_reason_desc character(100)
    20. ) tablespace reason_table_space1;
    21. -- 对表tpcds.reason_t1创建索引
    22. openGauss=# CREATE INDEX index_t1 on tpcds.reason_t1(r_reason_id);
    23. openGauss=# DROP TABLE tpcds.reason_t1;
    24. openGauss=# DROP TABLE tpcds.reason_t2;
    25. openGauss=# DROP TABLE tpcds.reason_t3;
    26. --查看回收站
    27. openGauss=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
    28. rcyname | rcyoriginname | rcytablespace
    29. -----------------------+---------------+---------------
    30. BIN$16409$2CEE988==$0 | reason_t1 | 16408
    31. BIN$16412$2CF2188==$0 | reason_t2 | 16408
    32. BIN$16418$2CF3EC8==$0 | index_t1 | 0
    33. (4 rows)
    34. --PURGE清除表
    35. openGauss=# PURGE TABLE tpcds.reason_t3;
    36. openGauss=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
    37. -----------------------+---------------+---------------
    38. BIN$16409$2CEE988==$0 | reason_t1 | 16408
    39. BIN$16412$2CF2188==$0 | reason_t2 | 16408
    40. BIN$16418$2CF3EC8==$0 | index_t1 | 0
    41. (3 rows)
    42. --PURGE清除索引
    43. openGauss=# PURGE INDEX tindex_t1;
    44. openGauss=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
    45. rcyname | rcyoriginname | rcytablespace
    46. -----------------------+---------------+---------------
    47. BIN$16409$2CEE988==$0 | reason_t1 | 16408
    48. BIN$16412$2CF2188==$0 | reason_t2 | 16408
    49. (2 rows)
    50. --PURGE清除回收站所有对象
    51. openGauss=# PURGE recyclebin;
    52. openGauss=# SELECT rcyname,rcyoriginname,rcytablespace FROM GS_RECYCLEBIN;
    53. rcyname | rcyoriginname | rcytablespace
    54. -----------------------+---------------+---------------
    55. (0 rows)