↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10
历史版本。 PostgreSQL 12 已结束支持。 2024-11-21. 请参阅 当前版本手册.

ALTER PUBLICATION

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

描述

ALTER PUBLICATION 命令可更改发布的属性。

前三种形式会更改哪些表属于该发布。SET TABLE 子句会用指定列表替换发布中的表列表。ADD TABLE 和 DROP TABLE 子句会向发布添加或从发布移除一个或多个表。请注意,向已被订阅的发布添加表,需要在订阅端执行 ALTER SUBSCRIPTION ... REFRESH PUBLICATION 操作后才会生效。

提要中列出的第四种形式可更改 CREATE PUBLICATION 中指定的所有发布属性。命令中未提及的属性会保留其先前的设置。

其余几种形式用于更改发布的所有者和名称。

要使用 ALTER PUBLICATION,必须拥有该发布。向发布添加表还要求拥有该表。要更改所有者,还必须是新所有者角色的直接或间接成员。新所有者必须在数据库上拥有 CREATE 权限。此外,FOR ALL TABLES 发布的新所有者必须是超级用户。不过,超级用户无论这些限制如何都可以更改发布的所有权。

参数

name

要更改其定义的现有发布名称。

table_name

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

SET ( publication_parameter [= value] [, ... ] )

此子句更改最初由 CREATE PUBLICATION 设置的发布参数。详情请参见该命令。

new_owner

新发布所有者的用户名。

new_name

发布的新名称。

示例

将发布修改为只发布删除和更新:

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

向发布中添加一些表:

ALTER PUBLICATION mypublication ADD TABLE users (user_id, firstname), departments;

兼容性

ALTER PUBLICATION 是 PostgreSQL 的一个扩展。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.