ALTER PUBLICATION
ALTER PUBLICATION — изменить определение публикации
Синтаксис
ALTER PUBLICATIONимяADD TABLE [ ONLY ]имя_таблицы[ * ] [, ...] ALTER PUBLICATIONимяSET TABLE [ ONLY ]имя_таблицы[ * ] [, ...] ALTER PUBLICATIONимяDROP TABLE [ ONLY ]имя_таблицы[ * ] [, ...] ALTER PUBLICATIONимяSET (параметр_публикации[=значение] [, ... ] ) ALTER PUBLICATIONимяOWNER TO {новый_владелец| CURRENT_USER | SESSION_USER } ALTER PUBLICATIONимяRENAME TOновое_имя
Описание
Команда ALTER PUBLICATION может изменять атрибуты публикации.
Первые три формы управляют вхождением таблиц в публикации. Предложение SET TABLE заменяет список таблиц в публикации заданным. Предложения ADD TABLE и DROP TABLE добавляют и удаляют таблицы в публикации, соответственно. Заметьте, что при добавлении таблиц в публикацию, на которую уже оформлена подписка, необходимо выполнить ALTER SUBSCRIPTION ... REFRESH PUBLICATION на стороне подписчика, чтобы это изменение вступило в силу.
Четвёртая форма этой команды, показанная в сводке синтаксиса, может изменять все свойства публикации, заданные в CREATE PUBLICATION. Свойства, которые не упоминаются в этой команде, сохраняют предыдущие значения.
Остальные формы команды меняют владельца и имя публикации.
Для выполнения ALTER PUBLICATION необходимо владеть данной публикацией. Чтобы сменить владельца, необходимо быть непосредственным или опосредованным членом новой роли-владельца, а эта роль должна иметь право CREATE в базе данных. Кроме того, новым владельцем публикации FOR ALL TABLES должен быть суперпользователь. Однако суперпользователь может менять владение публикацией, обходя эти ограничения.
Параметры
имяИмя существующей публикации, определение которой изменяется.
имя_таблицыИмя существующей таблицы. Если перед именем таблицы указано
ONLY, затрагивается только заданная таблица. БезONLYзатрагивается и заданная таблица, и все её потомки (если таковые есть). После имени таблицы можно добавить необязательное указание*, чтобы явно обозначить, что должны затрагиваться и все дочерние таблицы.SET (параметр_публикации[=значение] [, ... ] )Это предложение изменяет параметры публикации, изначально установленные командой CREATE PUBLICATION. За дополнительными сведениями обратитесь к её описанию.
новый_владелецИмя пользователя, назначаемого новым владельцем публикации.
новое_имяНовое имя публикации.
Примеры
Изменение публикации, чтобы публиковались только удаления и изменения:
ALTER PUBLICATION noinsert SET (publish = 'update, delete');
Добавление таблиц в публикацию:
ALTER PUBLICATION mypublication ADD TABLE users, departments;
Совместимость
ALTER PUBLICATION является расширением Postgres Pro.