选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10

DROP SUBSCRIPTION

DROP SUBSCRIPTION — 移除一个订阅

Synopsis

DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

描述

DROP SUBSCRIPTION从数据库集簇中移除一个订阅。

要执行此命令,用户必须是该订阅的拥有者。

如果该订阅与复制槽相关联,则不能在事务块内执行 DROP SUBSCRIPTION。 (可以使用ALTER SUBSCRIPTION 来取消设置该槽。)

参数

IF EXISTS

如果订阅不存在,不要抛出错误。在这种情况下会发出一个提示。

name

要移除的订阅名称。

CASCADE
RESTRICT

这些关键字没有任何效果,因为订阅上不存在依赖关系。

注解

删除一个与远端主机上的复制槽相关联的订阅时(这通常是正常状态), DROP SUBSCRIPTION会连接到远端主机,并在执行过程中尝试删除该复制槽 (以及任何剩余的表同步槽)。这样做是必要的,以便释放远端主机上 为该订阅分配的资源。如果此操作失败,无论是因为远端主机不可达,还是因为远端复制槽 无法删除、不存在或者从未存在,DROP SUBSCRIPTION命令都会失败。 要在这种情况下继续,首先执行 ALTER SUBSCRIPTION ... DISABLE 禁用订阅,然后执行 ALTER SUBSCRIPTION ... SET (slot_name = NONE) 将其与复制槽解除关联。此后,DROP SUBSCRIPTION将不会尝试删除订阅自身的复制槽。 如果还有某些表同步尚未完成,它仍可能连接到发布者,以删除由系统内部创建的表同步槽; 如果发布者不可达,则必须手工删除这些槽(以及仍然存在的主复制槽)。否则,这些槽会继续保留 WAL, 并最终可能导致磁盘被占满。另见Section 29.2.1

如果订阅与复制槽相关联,则不能在事务块内执行 DROP SUBSCRIPTION

示例

删除一个订阅:

DROP SUBSCRIPTION mysub;

兼容性

DROP SUBSCRIPTIONPostgreSQL扩展。

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。