ALTER 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
サブスクライブするパブリケーションのリストを変更します。
詳細はCREATE SUBSCRIPTIONを参照してください。
デフォルトでは、このコマンドはREFRESH PUBLICATION
のような動作もします。
set_publication_option
は、この操作についての追加のオプションを指定します。
以下のオプションがサポートされています。
refresh
(boolean
)
falseにすると、このコマンドはテーブルを情報を更新しません。
後で別にREFRESH PUBLICATION
を実行することになります。
デフォルトはtrue
です。
さらにREFRESH PUBLICATION
の項で説明されているrefreshオプションを指定できます。
REFRESH PUBLICATION
不足しているテーブル情報をパブリッシャーから取得します。
最後のREFRESH PUBLICATION
、あるいはCREATE SUBSCRIPTION
の実行の後でサブスクライブ対象のパブリケーションに追加されたテーブルの複製が、これにより開始されます。
refresh_option
は更新(refresh)の操作について追加のオプションを指定します。
以下のオプションがサポートされています。
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の拡張です。