ALTER SUBSCRIPTION — change the definition of a subscription
ALTER SUBSCRIPTIONnameCONNECTION 'conninfo' ALTER SUBSCRIPTIONnameSET PUBLICATIONpublication_name[, ...] [ WITH (set_publication_option[=value] [, ... ] ) ] ALTER SUBSCRIPTIONnameREFRESH PUBLICATION [ WITH (refresh_option[=value] [, ... ] ) ] ALTER SUBSCRIPTIONnameENABLE ALTER SUBSCRIPTIONnameDISABLE ALTER SUBSCRIPTIONnameSET (subscription_parameter[=value] [, ... ] ) ALTER SUBSCRIPTIONnameOWNER TO {new_owner| CURRENT_USER | SESSION_USER } ALTER SUBSCRIPTIONnameRENAME 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的扩展。