从一个或多个超表中分离表空间。 这 *仅* 表示 *新的* 数据块不会放置在分离的表空间上。 例如,当表空间磁盘空间不足并且希望阻止在表空间中创建新数据块时,这非常有用。 分离的表空间本身以及其上具有数据的任何现有数据块保持不变,并像以前一样继续工作,包括可用于查询。 请注意,新插入的数据行仍可能插入到分离的表空间上的现有数据块中,因为不会从分离的表空间中清除现有数据。 如果需要,可以重新连接分离的表空间,以便再次考虑用于数据块放置。

名称类型描述
tablespaceTEXT要分离的表空间。

当仅提供表空间名称作为参数时,给定的表空间将从当前角色具有适当权限的所有超表中分离。 因此,在没有适当权限的情况下,表空间可能在发出此命令后仍会接收新的数据块。

名称类型描述
hypertableREGCLASS要从中分离表空间的超表。
if_attachedBOOLEAN设置为 true 以避免在表空间未附加到给定表时引发错误。 而是发出通知。 默认为 false。

当指定特定的超表时,表空间仅从给定的超表中分离,因此可能仍附加到其他超表。

从超表 conditions 分离表空间 disk1

SELECT detach_tablespace('disk1', 'conditions');
SELECT detach_tablespace('disk2', 'conditions', if_attached => true);

从当前用户有权访问的所有超表分离表空间 disk1

SELECT detach_tablespace('disk1');

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面