命令ALTER PUBLICATION
可以更改发布的属性。
简介
前三个语句更改哪些表是该发布的一部分。SET TABLE
子句用指定的表替换发布中的表的列表。ADD TABLE
和 DROP TABLE
子句将从发布中添加和删除一个或多个表。 请注意,将表添加到已订阅的发布中将需要在订阅端执行ALTER SUBSCRIPTION ... REFRESH PUBLICATION
操作才能生效。
第四条语句可以改变在 CREATE PUBLICATION 中指定的所有发布属性。 该命令中未提及的属性保留其先前的设置。
其余语句更改所有者和发布的名称。
你必须拥有该发布才能使用ALTER PUBLICATION
。要改变所有者, 你也必须是新所有者角色的直接或间接成员。新的所有者必须在数据库上拥有 CREATE
权限。此外,FOR ALL TABLES
发布的新所有者必须是超级用户。但是, 超级用户可以在避开这些限制的情况下更改发布的所有权。
语法
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
参数
name
要修改定义的现有发布的名称。
table_name
现有表的名称。如果在表名之前指定了ONLY
,则只有该表受到影响。 如果没有指定ONLY
,则该表及其所有后代表(如果有的话)都会受到影响。 可选地,可以在表名之后指定以明确指示包含后代表。
SET (
publication_parameter
[=
value
] [, ... ] )
该子句修改最初由 CREATE PUBLICATION 设置的发布参数。
new_owner
发布的新所有者的用户名。
new_name
发布的新名称。
示例
将发布修改为只发布删除和更新: Change the publication to publish only deletes and updates:
ALTER PUBLICATION noinsert SET (publish = 'update, delete');
给发布添加一些表:
ALTER PUBLICATION mypublication ADD TABLE users, departments;
文档内容是否对您有帮助?