ALTER SUBSCRIPTION

ALTER SUBSCRIPTION — изменить определение подписки

Синтаксис

ALTER SUBSCRIPTION имя CONNECTION 'строка_подключения'
ALTER SUBSCRIPTION имя SET PUBLICATION имя_публикации [, ...] [ WITH ( параметр_set_publication [= значение] [, ... ] ) ]
ALTER SUBSCRIPTION имя REFRESH PUBLICATION [ WITH ( параметр_обновления [= значение] [, ... ] ) ]
ALTER SUBSCRIPTION имя ENABLE
ALTER SUBSCRIPTION имя DISABLE
ALTER SUBSCRIPTION имя SET ( параметр_подписки [= значение] [, ... ] )
ALTER SUBSCRIPTION имя OWNER TO { новый_владелец | CURRENT_USER | SESSION_USER }
ALTER SUBSCRIPTION имя RENAME TO новое_имя

Описание

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

Чтобы использовать команду ALTER SUBSCRIPTION, нужно быть владельцем соответствующей подписки. Для смены владельца текущий пользователь также должен быть непосредственным или опосредованным членом новой роли-владельца. Новый владелец должен быть суперпользователем. (В настоящее время все владельцы подписок должны быть суперпользователями, поэтому на практике проверка владельца будет пропущена. Но в будущем это может измениться.)

Параметры

имя

Имя подписки, свойства которой подлежат изменению.

CONNECTION 'строка_подключения'

Это предложение изменяет свойство соединения, первоначально заданное командой CREATE SUBSCRIPTION. Дополнительную информацию см. в описании этой команды.

SET PUBLICATION имя_публикации

Изменяет список публикаций, на которые оформлена подписка. Дополнительную информацию см. в разделе CREATE SUBSCRIPTION. По умолчанию эта команда также будет действовать как REFRESH PUBLICATION.

В указании параметр_set_publication задаются дополнительные свойства этой операции. Поддерживаемые параметры:

  • refresh (boolean)

При значении false команда не будет пытаться обновить информацию о таблицах. После этого REFRESH PUBLICATION следует выполнять отдельно. Значение по умолчанию равно true.

Кроме того, здесь могут задаваться параметры обновления, перечисленные в описании REFRESH PUBLICATION.

REFRESH PUBLICATION

Считывает недостающую информацию о таблицах с публикующего сервера. Это приводит к запуску репликации таблиц, добавленных в публикации, на которые оформлена подписка, после последнего вызова REFRESH PUBLICATION или CREATE SUBSCRIPTION.

В указании параметр_обновления задаются дополнительные свойства операции обновления. Поддерживаемые параметры:

  • copy_data (boolean)

Указывает, следует ли копировать существующие данные в публикациях, на которые оформляется подписка, после запуска репликации. Значение по умолчанию равно true. (Таблицы, на которые уже оформлена подписка, не копируются.)

ENABLE

Включает ранее выключенную подписку, запуская процесс логической репликации в конце транзакции.

DISABLE

Выключает запущенную подписку, останавливая процесс логической репликации в конце транзакции.

SET ( параметр_подписки [= значение] [, ... ] )

Это предложение изменяет параметры, первоначально заданные с помощью команды CREATE SUBSCRIPTION. Допустимые параметры: slot_name и synchronous_commit

новый_владелец

Имя пользователя, который станет новым владельцем подписки.

новое_имя

Новое имя подписки.

Примеры

Изменение подписки путем подписывания на публикацию insert_only:

ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only;

Выключение (остановка) подписки:

ALTER SUBSCRIPTION mysub DISABLE;

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

Команда ALTER SUBSCRIPTION является расширением QHB.

См. также

CREATE SUBSCRIPTION, DROP SUBSCRIPTION, CREATE PUBLICATION, ALTER PUBLICATION