DROP SUBSCRIPTION#
DROP SUBSCRIPTION
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 и в конечном итоге могут привести к заполнению диска. См.
также Раздел 29.2.1.
Если подписка связана с слотом репликации, то команда DROP
SUBSCRIPTION
не может быть выполнена внутри блока транзакции.
Примеры
Удаление подписки:
DROP SUBSCRIPTION mysub;
Совместимость
DROP SUBSCRIPTION
- это расширение Tantor BE.