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