# 更改订阅

更改订阅-更改订阅的定义

# 提要

ALTER SUBSCRIPTION name CONNECTION 'conninfo'
ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name ADD PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name DROP PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name REFRESH PUBLICATION [ WITH ( refresh_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name ENABLE
ALTER SUBSCRIPTION name DISABLE
ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] )
ALTER SUBSCRIPTION name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER SUBSCRIPTION name RENAME TO new_name

# 描述

更改订阅可以更改可在中指定的大多数订阅属性创建订阅.

您必须拥有订阅才能使用更改订阅。要更改所有者,您还必须是新所有者角色的直接或间接成员。新主人必须是超级用户。(目前,所有订阅所有者都必须是超级用户,因此在实践中,所有者检查将被绕过。但这在未来可能会发生变化。)

刷新发布时,我们会删除不再属于发布的关系,如果存在表同步槽,我们还会删除表同步槽。有必要删除这些插槽,以便释放为远程主机上的订阅分配的资源。如果由于网络故障或其他错误,PostgreSQL无法删除插槽,将报告错误。若要在这种情况下继续,用户需要重试该操作,或断开插槽与订阅的关联,并删除订阅,如中所述放弃订阅.

命令更改订阅。。。刷新出版物更改订阅。。。{SET | ADD | DROP}发布。。。具有刷新选项A符合事实的无法在事务块内执行。

# 参数

名称

要更改其属性的订阅的名称。

连接'*康宁*'

此子句更改最初由设置的连接属性创建订阅.更多信息请参见此处。

集出版*出版物名称*
添加出版物*出版物名称*
停刊*出版物名称*

更改已订阅出版物的列表。设置用新列表替换整个出版物列表,添加将其他出版物添加到出版物列表中,以及从发布列表中删除发布。看见创建订阅了解更多信息。默认情况下,该命令的作用也类似于刷新出版物.

*发布选项*指定此操作的其他选项。支持的选项包括:

刷新 (布尔值)

如果为false,该命令将不会尝试刷新表信息。刷新出版物然后应该单独执行。默认值是符合事实的.

此外,下面描述的选项刷新出版物可以指定,以控制隐式刷新操作。

刷新出版物

从发布服务器获取缺少的表信息。这将开始复制自上次调用以来添加到订阅发布的表刷新出版物还是从那以后创建订阅.

*刷新选项*指定刷新操作的其他选项。支持的选项包括:

复制数据 (布尔值)

指定复制启动后是否应复制订阅的发布中的现有数据。默认值是符合事实的(不复制以前订阅的表。)

使可能

启用以前禁用的订阅,在事务结束时启动逻辑复制工作进程。

使残废

禁用正在运行的订阅,在事务结束时停止逻辑复制工作进程。

集合(*订阅参数* [= *价值*] [, ... ] )

此子句更改最初由设置的参数创建订阅.更多信息请参见此处。可以更改的参数包括插槽名称, 同步提交, 二进制的流动.

新老板

订阅的新所有者的用户名。

新名字

订阅的新名称。

# 例子

将订阅订阅的出版物更改为仅插入:

ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only;

禁用(停止)订阅:

ALTER SUBSCRIPTION mysub DISABLE;

# 兼容性

更改订阅是一个PostgreSQL扩展。

# 另见

创建订阅, 放弃订阅, 创建出版物, 涂改出版物