# 放弃订阅

DROP SUBSCRIPTION — 删除订阅

# 概要

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

# 描述

放弃订阅从数据库集群中删除订阅。

订阅只能由超级用户删除。

放弃订阅如果订阅与复制槽相关联,则无法在事务块内执行。(您可以使用更改订阅取消设置插槽。)

# 参数

姓名

要删除的订阅的名称。

级联
严格

这些关键词没有任何作用,因为订阅没有依赖关系。

# 笔记

删除与远程主机上的复制槽关联的订阅时(正常状态),放弃订阅将连接到远程主机并尝试删除复制槽(以及任何剩余的表同步槽)作为其操作的一部分。这是必要的,以便释放为远程主机上的订阅分配的资源。如果这失败了,要么是因为远程主机不可访问,要么是因为远程复制槽不能被删除、不存在或从不存在,放弃订阅命令将失败。要在这种情况下继续,请执行以下命令取消订阅与复制槽的关联ALTER SUBSCRIPTION ... SET (slot_name = NONE).在那之后,放弃订阅将不再尝试对远程主机执行任何操作。请注意,如果远程复制槽仍然存在,则应手动删除它(以及任何相关的表同步槽);否则它/他们将继续保留 WAL 并最终可能导致磁盘填满。也可以看看第 31.2.1 节.

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

# 例子

取消订阅:

DROP SUBSCRIPTION mysub;

# 兼容性

放弃订阅是一个 PostgreSQL 扩展。

# 也可以看看

创建订阅,更改订阅