On this page
ALTER PUBLICATION
ALTER PUBLICATION —更改出版物的定义
Synopsis
ALTER PUBLICATION name ADD TABLE [ ONLY ] table_name [ * ] [, ...]
ALTER PUBLICATION name SET TABLE [ ONLY ] table_name [ * ] [, ...]
ALTER PUBLICATION name DROP TABLE [ ONLY ] table_name [ * ] [, ...]
ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] )
ALTER PUBLICATION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
ALTER PUBLICATION name RENAME TO new_name
Description
命令ALTER PUBLICATION
可以更改发布的属性。
前三个变体更改哪些表是出版物的一部分。 SET TABLE
子句将用指定的表替换发布中的表列表。 ADD TABLE
和DROP TABLE
子句将在发布中添加和删除一个或多个表。请注意,将表添加到已订阅的发布中将需要在订阅方执行ALTER SUBSCRIPTION ... REFRESH PUBLICATION
动作才能生效。
概要中列出的此命令的第四个变体可以更改CREATE PUBLICATION中指定的所有发布属性。命令中未提及的属性保留其先前的设置。
其余的变体更改出版物的所有者和名称。
您必须拥有出版物才能使用ALTER PUBLICATION
。要更改所有者,您还必须是新拥有角色的直接或间接成员。新所有者必须对数据库具有CREATE
特权。同样,FOR ALL TABLES
发布的新所有者必须是超级用户。但是,超级用户可以在规避这些限制的同时更改出版物的所有权。
Parameters
name
- 要更改其定义的现有出版物的名称。
table_name
- 现有表的名称。如果在表名之前指定了
ONLY
,则仅影响该表。如果未指定ONLY
,则该表及其所有后代表(如果有)将受到影响。 (可选)可以在表名称后指定*
,以明确指示包括后代表。
- 现有表的名称。如果在表名之前指定了
SET ( publication_parameter [= value] [, ... ] )
- 本节更改了最初由CREATE PUBLICATION设置的发布参数。有关更多信息,请参见此处。
new_owner
- 出版物的新所有者的用户名。
new_name
- 出版物的新名称。
Examples
将发布更改为仅发布删除和更新:
ALTER PUBLICATION noinsert SET (publish = 'update, delete');
在发布中添加一些表:
ALTER PUBLICATION mypublication ADD TABLE users, departments;
Compatibility
ALTER PUBLICATION
是 PostgreSQL 扩展。
See Also
CREATE PUBLICATION, DROP PUBLICATION, CREATE SUBSCRIPTION, ALTER SUBSCRIPTION