DROP SUBSCRIPTION

DROP SUBSCRIPTION — удалить подписку


Синтаксис

DROP SUBSCRIPTION [ IF EXISTS ] имя [ CASCADE | RESTRICT ]

Описание

Команда DROP SUBSCRIPTION удаляет подписку из кластера баз данных.

Подписку может удалить только суперпользователь.

Команду DROP SUBSCRIPTION нельзя выполнить внутри блока транзакции, если подписка связана со слотом репликации. (Для освобождения слота можно воспользоваться командой ALTER SUBSCRIPTION.)


Параметры

имя

Имя удаляемой подписки.

CASCADE
RESTRICT

Эти ключевые слова не имеют эффекта, так как у подписок нет зависимых объектов.

Примечания

При удалении подписки, связанной со слотом репликации на удаленном хосте (обычное состояние), команда DROP SUBSCRIPTION подключится к этому удаленному хосту и попытается удалить слот репликации (и все остальные слоты синхронизации таблиц) в рамках своей операции. Это необходимо для освобождения ресурсов, выделенных для подписки на удаленном хосте. Если при этом происходит сбой — либо из-за недоступности удаленного хоста, либо из-за того, что слот репликации нельзя удалить, или он не существует, или вообще никогда не существовал, — команда DROP SUBSCRIPTION прерывается. Чтобы продолжить работу в такой ситуации, отключите подписку от слота репликации, выполнив ALTER SUBSCRIPTION ... SET (slot_name = NONE). После этого DROP SUBSCRIPTION больше не будет пытаться что-либо делать на удаленном хосте. Обратите внимание, что если удаленный слот репликации все еще существует, его (и все связанные слоты синхронизации таблиц) следует удалить вручную; в противном случае он/они продолжат резервировать WAL, что может в конечном итоге привести к переполнению диска. См. также подраздел Управление слотами репликации.

Если подписка связана со слотом репликации, то команду DROP SUBSCRIPTION нельзя выполнять внутри блока транзакции.


Примеры

Удаление подписки:

DROP SUBSCRIPTION mysub;

Совместимость

Команда DROP SUBSCRIPTION является расширением QHB.


См. также

CREATE SUBSCRIPTION, ALTER SUBSCRIPTION