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