PostgreSQL ALTER SUBSCRIPTION
ALTER SUBSCRIPTION — 修改订阅的定义
大纲
ALTER SUBSCRIPTION name
CONNECTION 'conninfo
'
ALTER SUBSCRIPTION name
SET PUBLICATION publication_name
[, ...] [ WITH ( set_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_USER | SESSION_USER }
ALTER SUBSCRIPTION name
RENAME TO new_name
描述
ALTER SUBSCRIPTION
可以修改大部分可以在 CREATE SUBSCRIPTION中指定的订阅属性。
要使用ALTER SUBSCRIPTION
,你必须拥有该订阅。要改变所有者, 你也必须是新所有者的直接或间接成员。新所有者必须是超级用户。(目前, 所有的订阅所有者必须是超级用户,所以所有者的检查将在实践中被绕过, 但这可能在未来发生变化。)
参数
name
-
要修改属性的订阅的名称。
CONNECTION '
conninfo
'-
该子句修改最初由CREATE SUBSCRIPTION设置的连接属性。
SET PUBLICATION
publication_name
-
更改订阅发布的列表。参阅CREATE SUBSCRIPTION 获取更多信息。默认情况下,此命令也将像
REFRESH PUBLICATION
一样工作。set_publication_option
指定了这个操作的附加选项。 支持的选项是:refresh
(boolean
)-
如果为false,则该命令将不会尝试刷新表信息。然后应单独执行
REFRESH PUBLICATION
。默认值是true
。
此外,可以指定
REFRESH PUBLICATION
下描述的刷新选项。 REFRESH PUBLICATION
-
从发布者获取缺少的表信息。这将开始复制自上次调用
REFRESH PUBLICATION
或从CREATE SUBSCRIPTION
以来添加到订阅发布中的表。refresh_option
指定了刷新操作的附加选项。 支持的选项有:copy_data
(boolean
)-
指定在复制启动后是否应复制正在订阅的发布中的现有数据。 默认值是
true
。(以前订阅的表不会被复制。)
ENABLE
-
启用先前禁用的订阅,在事务结束时启动逻辑复制工作。
DISABLE
-
禁用正在运行的订阅,在事务结束时停止逻辑复制工作。
SET (
subscription_parameter
[=value
] [, ... ] )-
该子句修改原先由CREATE SUBSCRIPTION设置的参数。 允许的选项是
slot_name
和synchronous_commit
。 new_owner
-
订阅的新所有者的用户名。
new_name
-
订阅的新名称。
示例
将订阅的发布更改为insert_only
:
ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only;
禁用(停止)订阅:
ALTER SUBSCRIPTION mysub DISABLE;
兼容性
ALTER SUBSCRIPTION
是PostgreSQL
的一个扩展。