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