×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.23. ALTER PUBLICATION

6.1.23. ALTER PUBLICATION

ALTER PUBLICATION — изменение определения публикации

Синтаксис

ALTER PUBLICATION name ADD publication_object [, ...]
ALTER PUBLICATION name SET publication_object [, ...]
ALTER PUBLICATION name DROP publication_object [, ...]
ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] )
ALTER PUBLICATION name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER PUBLICATION name RENAME TO new_name

где publication_object может быть одним из:

    TABLE [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] [, ... ]
    TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ]

Описание

Команда ALTER PUBLICATION может изменять атрибуты публикации.

Первые три варианта изменяют, какие таблицы/схемы являются частью публикации. Предложение SET заменит список таблиц/схем в публикации на указанный список; существующие таблицы/схемы, присутствовавшие в публикации, будут удалены. Предложения ADD и DROP добавят и удалят одну или несколько таблиц/схем из публикации. Обратите внимание, что добавление таблиц/схем в публикацию, на которую уже есть подписка, потребует действия ALTER SUBSCRIPTION ... REFRESH PUBLICATION на стороне подписчика, чтобы изменения вступили в силу. Также обратите внимание, что DROP TABLES IN SCHEMA не удалит таблицы схемы, которые были указаны с помощью FOR TABLE/ ADD TABLE, а комбинация DROP с предложением WHERE не допускается.

Четвёртый вариант этой команды, указанный в синтаксисе, может изменить все свойства публикации, заданные в CREATE PUBLICATION. Свойства, не упомянутые в команде, сохраняют свои предыдущие значения.

Оставшиеся варианты изменяют владельца и имя публикации.

Чтобы использовать ALTER PUBLICATION, вы должны быть владельцем публикации. Добавление таблицы в публикацию дополнительно требует права владения этой таблицей. Для добавления ADD TABLES IN SCHEMA и SET TABLES IN SCHEMA в публикацию необходимо, чтобы вызывающий пользователь был суперпользователем. Чтобы изменить владельца, вы должны иметь возможность выполнить SET ROLE для новой роли-владельца, и эта роль должна иметь право CREATE в базе данных. Кроме того, новый владелец публикации с параметрами FOR ALL TABLES или FOR TABLES IN SCHEMA должен быть суперпользователем. Однако суперпользователь может изменить владельца публикации независимо от этих ограничений.

Добавление/установка любой схемы, когда публикация также публикует таблицу с списком столбцов, и наоборот, не поддерживается.

Параметры

name

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

table_name

Имя существующей таблицы. Если перед именем таблицы указано ONLY, затрагивается только эта таблица. Если ONLY не указано, затрагиваются таблица и все её дочерние таблицы (если есть). Дополнительно после имени таблицы можно указать *, чтобы явно обозначить, что дочерние таблицы включаются.

Дополнительно может быть указан список столбцов. Подробности см. в CREATE PUBLICATION. Обратите внимание, что подписка, имеющая несколько публикаций, в которых одна и та же таблица опубликована с разными списками столбцов, не поддерживается. Подробности о потенциальных проблемах при изменении списков столбцов см. в Внимание: объединение списков столбцов из нескольких публикаций.

Если указано необязательное предложение WHERE, строки, для которых expression вычисляется в false или null, публиковаться не будут. Обратите внимание, что вокруг выражения требуются круглые скобки. Выражение expression вычисляется с ролью, используемой для соединения репликации.

schema_name

Имя существующей схемы.

SET ( publication_parameter [= value] [, ... ] )

Это предложение изменяет параметры публикации, изначально заданные командой CREATE PUBLICATION. Подробности см. там.

new_owner

Имя пользователя нового владельца публикации.

new_name

Новое имя для публикации.

Примеры

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

ALTER PUBLICATION noinsert SET (publish = 'update, delete');

Добавить некоторые таблицы в публикацию:

ALTER PUBLICATION mypublication ADD TABLE users (user_id, firstname), departments;

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

ALTER PUBLICATION mypublication SET TABLE users (user_id, firstname, lastname), TABLE departments;

Добавить схемы marketing и sales в публикацию sales_publication:

ALTER PUBLICATION sales_publication ADD TABLES IN SCHEMA marketing, sales;

Добавить таблицы users, departments и схему production в публикацию production_publication:

ALTER PUBLICATION production_publication ADD TABLE users, departments, TABLES IN SCHEMA production;

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

Команда ALTER PUBLICATION является расширением Digital Q.DataBase.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению