Postgresql 中文操作指南

DROP SUBSCRIPTION

DROP SUBSCRIPTION——移除订阅

Synopsis

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

Description

DROP SUBSCRIPTION 从数据库集群中删除订阅。

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

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

Parameters

  • name

    • 要删除的订阅的名称。

  • CASCADE__RESTRICT

    • 由于订阅没有依赖关系,因此这些关键字没有任何效果。

Notes

在删除与远程主机的复制槽关联的订阅时(正常状态), DROP SUBSCRIPTION 会连接到远程主机并尝试在其操作过程中删除复制槽(以及任何剩余的表同步槽)。这样做是为了释放为远程主机上的订阅分配的资源。如果由于无法连接远程主机或无法删除或不存在远程复制槽或从来没有这个远程复制槽,则 DROP SUBSCRIPTION 命令将失败。要继续这种情况,首先通过执行 ALTER SUBSCRIPTION …​ DISABLE 禁用订阅,然后通过执行 ALTER SUBSCRIPTION …​ SET (slot_name = NONE) 取消其与复制槽关联。之后, DROP SUBSCRIPTION 将不再尝试在远程主机上执行任何操作。请注意,如果远程复制槽仍然存在,则应手动删除它(以及任何相关的表同步槽);否则,它/它们将继续保留 WAL 并最终可能会导致磁盘被填满。另请参见 Section 31.2.1

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

Examples

删除订阅:

DROP SUBSCRIPTION mysub;

Compatibility

DROP SUBSCRIPTION 是一个 PostgreSQL 扩展。