================= DROP SUBSCRIPTION ================= .. container:: refentry :name: SQL-DROPSUBSCRIPTION .. container:: titlepage .. container:: refnamediv .. rubric:: DROP SUBSCRIPTION :name: drop-subscription DROP SUBSCRIPTION — 删除一个订阅 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ] .. container:: refsect1 :name: id-1.9.3.133.5 .. rubric:: 描述 :name: 描述 ``DROP SUBSCRIPTION``\ 删除数据库集群中的一个订阅。 只有超级用户才可以删除订阅。 如果订阅与复制槽相关联,就不能在事务块内部执行\ ``DROP SUBSCRIPTION``\ 。 (可以使用\ ``ALTER SUBSCRIPTION``\ 取消关联复制槽。) .. container:: refsect1 :name: id-1.9.3.133.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist *``name``* 要删除的订阅的名称。 ``CASCADE`` \ ``RESTRICT`` 这些关键词没有任何作用,因为订阅没有依赖关系。 .. container:: refsect1 :name: id-1.9.3.133.7 .. rubric:: 注意 :name: 注意 当删除与远程主机(正常状态)上的复制槽相关联的订阅时,\ ``DROP SUBSCRIPTION`` 将连接到远程主机,并尝试删除该复制槽,作为其操作的一部分。这是必要的, 以便释放远程主机上为订阅分配的资源。如果失败,因为远程主机不可访问, 或者因为远程复制槽不能被删除,或者复制槽不存在或从不存在, 则\ ``DROP SUBSCRIPTION``\ 命令将失败。要在这种情况下继续, 请执行\ ``ALTER SUBSCRIPTION ... SET (slot_name = NONE)`` 来解除复制槽与订阅的关联。之后,\ ``DROP SUBSCRIPTION`` 将不再尝试对远程主机执行任何操作。请注意,如果远程复制槽仍然存在, 则应手动删除该插槽;否则将继续保留WAL,最终可能导致磁盘空间不足。 .. container:: refsect1 :name: id-1.9.3.133.8 .. rubric:: 示例 :name: 示例 删除一个订阅: .. code:: programlisting DROP SUBSCRIPTION mysub; .. container:: refsect1 :name: id-1.9.3.133.9 .. rubric:: 兼容性 :name: 兼容性 ``DROP SUBSCRIPTION``\ 是一个PostgreSQL 扩展。 .. container:: refsect1 :name: id-1.9.3.133.10 .. rubric:: 又见 :name: 又见 `CREATE SUBSCRIPTION `__, `ALTER SUBSCRIPTION `__