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.