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.