ALTER SUBSCRIPTION — change the definition of a subscription
ALTER SUBSCRIPTIONname
CONNECTION 'conninfo
' ALTER SUBSCRIPTIONname
SET PUBLICATIONpublication_name
[, ...] [ WITH (set_publication_option
[=value
] [, ... ] ) ] ALTER SUBSCRIPTIONname
REFRESH PUBLICATION [ WITH (refresh_option
[=value
] [, ... ] ) ] ALTER SUBSCRIPTIONname
ENABLE ALTER SUBSCRIPTIONname
DISABLE ALTER SUBSCRIPTIONname
SET (subscription_parameter
[=value
] [, ... ] ) ALTER SUBSCRIPTIONname
OWNER TO {new_owner
| CURRENT_USER | SESSION_USER } ALTER SUBSCRIPTIONname
RENAME TOnew_name
ALTER SUBSCRIPTION
可以更改CREATE SUBSCRIPTION中指定的绝大部分订阅属性。
要使用ALTER SUBSCRIPTION
,你必须拥有该订阅。要修改拥有者,你还必须是新拥有角色的一个直接或者间接成员。新拥有者必须是超级用户(当前,所有订阅的拥有者必须都是超级用户,因此实际上拥有者检查将被绕过。但是未来可能会改变这种情况)。
name
要修改其属性的订阅的名字。
CONNECTION 'conninfo
'
这个子句修改最初由CREATE SUBSCRIPTION设置的连接属性。更多信息请见该命令。
SET PUBLICATION publication_name
更改已订阅的publication的列表。更多信息请见CREATE SUBSCRIPTION。默认情况下,这个命令还将做类似REFRESH PUBLICATION
的动作。
set_publication_option
为这个操作指定额外的选项。支持的选项是:
refresh
(boolean
)
当为false时,该命令将不会尝试刷新表信息。那么应该单独执行REFRESH PUBLICATION
。默认值是true
。
此外,REFRESH PUBLICATION
中介绍的刷新选项也可以被指定。
REFRESH PUBLICATION
从发布者取回缺失的表信息。这将开启对所订阅的publication中的表的复制,会被复制的表是从上一次调用REFRESH PUBLICATION
以来或者从CREATE SUBSCRIPTION
以来
增加的表。
refresh_option
为刷新操作指定额外的选项。支持的选项是:
copy_data
(boolean
)
指定一旦复制开始,被订阅的publication中已有的数据是否应该被拷贝。默认是true
。
ENABLE
启用之前被禁用的订阅,在事务的末尾开始逻辑复制工作者。
DISABLE
禁止运行订阅,在事务的末尾停止逻辑复制工作者。
SET ( subscription_parameter
[= value
] [, ... ] )
这个子句修改最初由CREATE SUBSCRIPTION设置的参数。更多信息请参考该命令。允许的选项是slot_name
以及synchronous_commit
new_owner
该订阅的新拥有者的用户名。
new_name
该订阅的新名字。
把一个订阅所订阅的publication改成insert_only
:
ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only;
禁用(停止)该订阅:
ALTER SUBSCRIPTION mysub DISABLE;
ALTER SUBSCRIPTION
是一种PostgreSQL的扩展。