选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / SQL 命令 / 逻辑复制

SQL COMMAND · 逻辑复制

DROP SUBSCRIPTION

移除一个订阅

DROP逻辑复制引入 10(基线)现存至 20 devel0 次语法变更

动词
DROP
对象
SUBSCRIPTION
引入版本
10(基线)
状态
现存
语法变更次数
0
手册小节数
6

本站手册 · 18官方文档 ↗

版本轨迹

相对 PostgreSQL 17 无变化。

语法铁道图 PostgreSQL 18

沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。

DROP SUBSCRIPTION IF EXISTS name CASCADE RESTRICT

语法概要

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

PostgreSQL 18 手册 · 查看完整参考页

描述

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扩展。

另见

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 20← 19正文更新

    正文更新
  2. PostgreSQL 19← 18正文更新

    正文更新
  3. PostgreSQL 14← 13正文更新

    正文更新
  4. PostgreSQL 12← 11正文更新

    正文更新
  5. PostgreSQL 11← 10正文更新

    正文更新

同组命令

命令动词对象版本变动最近变更
LOGICAL REPLICATION逻辑复制6 条
CREATE PUBLICATIONCREATEPUBLICATION 192 次
定义一个新的发布现存
ALTER PUBLICATIONALTERPUBLICATION 192 次
修改发布的定义现存
DROP PUBLICATIONDROPPUBLICATION
移除一个发布现存
CREATE SUBSCRIPTIONCREATESUBSCRIPTION 191 次
定义一个新的订阅现存
ALTER SUBSCRIPTIONALTERSUBSCRIPTION 192 次
修改订阅的定义现存
DROP SUBSCRIPTIONDROPSUBSCRIPTION
移除一个订阅现存