Перейти к основному содержимому

DROP SUBSCRIPTION

примечание

Эта страница переведена при помощи нейросети GigaChat.

DROP SUBSCRIPTION — удаление подписки.

Синтаксис

DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

Описание

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

Выполнить эту команду может только владелец подписки.

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

Параметры

name
Задает имя существующей подписки, которая должна быть удалена.
CASCADE
RESTRICT
Не имеют никакого эффекта, поскольку нет зависимостей от подписок.

Примечания

Если подписка связана с репликационным слотом на удаленном сервере (что является нормальным состоянием), команда DROP SUBSCRIPTION при выполнении попытается подключиться к удаленному серверу и удалить этот слот, а также все слоты, связанные с синхронизацией таблиц. Это необходимо для освобождения ресурсов, занятых подпиской на удаленной стороне.

Если подключение к удаленному серверу невозможно, либо слот не может быть удален (или никогда не существовал), команда DROP SUBSCRIPTION завершится с ошибкой.

Чтобы обойти эту ситуацию, сначала нужно отключить подписку с помощью команды:

ALTER SUBSCRIPTION ... DISABLE;

Затем отключите подписку от репликационного слота:

ALTER SUBSCRIPTION имя_подписки SET (slot_name = NONE);

После этого команда DROP SUBSCRIPTION не будет пытаться выполнять действия на удаленной стороне и завершится успешно.

Однако важно помнить: если слот на удаленном сервере все еще существует, его (и все связанные с ним слоты синхронизации таблиц) нужно удалить вручную. В противном случае они продолжат удерживать WAL (журналы транзакций), что может привести к переполнению диска.

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

Примеры

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

DROP SUBSCRIPTION mysub;

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

DROP SUBSCRIPTION является расширением PostgreSQL.

Смотрите также

CREATE SUBSCRIPTION, ALTER SUBSCRIPTION