# 更改订阅
更改订阅-更改订阅的定义
# 提要
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扩展。