如何删除 PostgreSQL 表空间

如何删除 PostgreSQL 表空间

我刚刚开始在 Xubuntu 20.04 上设置 PosgreSQL 12,所以我创建了一些东西作为实验,我想删除它们并重新开始。希望不会破坏一切,因为即使删除也是一次测试。到目前为止,一切都很成功,尽管有时需要经过几次尝试,但现在我试图放弃一个名为 qubicspace 的表空间,但我一直收到错误tablespace "qubicspace" is not empty

以我的用户角色登录,我没有得到任何结果

从 pg_tables 中选择 *,其中表空间不为空;

事实上,如果我删除 WHERE 子句并将其作为 postgres 运行,我只会得到带有 pg_ 和 sql_ 前缀的表。

我不知道还要寻找什么,以便我可以清除它。

答案1

事实证明,我忘记查找表空间中的数据库了。当我查询 pg_databases 时,发现有一个数据库(其中包含零个表),删除数据库后,就可以删除表空间了。

答案2

在 PostgreSQL 中,表空间是在集群级别创建的,这意味着多个数据库对象(如表和索引)可以驻留在表空间中。因此,在删除表空间之前,请检查PostgreSQL 表空间位置并交叉检查所有对象及其引用数据库。

**Syntax:**

DROP TABLESPACE [IF EXISTS] tablespace_name;

drop tablespace if exists tbs_test;

注意:如果表空间中有任何对象,则会抛出错误:表空间不为空。删除表空间前请删除所有对象。

相关内容