# 更改出版物

ALTER PUBLICATION — 更改发布的定义

# 概要

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_ROLE | CURRENT_USER | SESSION_USER }
ALTER PUBLICATION name RENAME TO new_name

# 描述

命令更改出版物可以更改发布的属性。

前三个变体更改了哪些表是出版物的一部分。这设置表子句将用指定的表替换发布中的表列表。这添加表格删除表子句将从发布中添加和删除一个或多个表。请注意,将表添加到已订阅的发布将需要更改订阅...刷新发布订阅方采取行动以使其生效。

概要中列出的此命令的第四个变体可以更改指定的所有发布属性创建出版物.命令中未提及的属性保留其先前的设置。

其余变体更改出版物的所有者和名称。

您必须拥有该出版物才能使用更改出版物.将表添加到发布还需要拥有该表。要更改所有者,您还必须是新所有者角色的直接或间接成员。新主人必须有创造数据库的权限。此外,新的所有者适用于所有桌子发布必须是超级用户。但是,无论这些限制如何,超级用户都可以更改发布的所有权。

# 参数

姓名

要更改其定义的现有出版物的名称。

表名

现有表的名称。如果只要在表名之前指定,只有该表受到影响。如果只要如果未指定,则该表及其所有后代表(如果有)都会受到影响。可选地,*可以在表名之后指定以明确指示包含后代表。

放 ( *发布参数* [= *价值*] [, ... ])

该子句更改了最初设置的发布参数创建出版物.见那里了解更多信息。

新主人

发布的新所有者的用户名。

新名字

出版物的新名称。

# 例子

将发布更改为仅发布删除和更新:

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

将一些表添加到发布中:

ALTER PUBLICATION mypublication ADD TABLE users, departments;

# 兼容性

更改出版物是一个 PostgreSQL 扩展。

# 也可以看看

创建出版物,删除出版物,创建订阅,更改订阅