DROP SUBSCRIPTIONはサブスクリプションを削除します。
説明
DROP SUBSCRIPTIONは、データベースクラスターからサブスクリプションを削除します。
サブスクリプションは、スーパーユーザーによってのみ削除できます。
サブスクリプションがレプリケーションスロットに関連付けられている場合、DROP SUBSCRIPTIONはトランザクションブロック内で実行できません。 (ALTER SUBSCRIPTIONを使用して、スロットの設定を解除できます。)
概要
ドロップサブスクリプション [IF EXISTS ] name [ CASCADE | RESTRICT ]パラメーター
name: ドロップするサブスクリプションの名前。CASCADERESTRICT: サブスクリプションに依存しないため、これらのキーワードは効果がありません。
注
リモートホストのレプリケーションスロットに関連付けられているサブスクリプションをドロップすると (通常の状態) 、DROP subscriptionはリモートホストに接続し、その操作の一部としてレプリケーションスロット (および残りのテーブル同期スロット) をドロップしようとします。 これは、リモートホストのサブスクリプションに割り当てられたリソースを解放するために必要です。 リモートホストに到達できないか、リモートレプリケーションスロットを削除できないか、存在しないか、存在しないために、これが失敗すると、DROP SUBSCRIPTIONコマンドは失敗します。 この状況で続行するには、最初にALTER subscriptionを実行することによってサブスクリプションを無効にします... DISABLEを実行し、ALTER SUBSCRIPTION... を実行してレプリケーションスロットからの関連付けを解除します。 SET (slot_name = NONE) その後、DROP SUBSCRIPTIONはリモートホストでアクションを試行しなくなります。 リモート複製スロットがまだ存在する場合は、リモート複製スロット (および関連するテーブル同期スロット) を手動でドロップする必要があります。そうしないと、WALを予約し続け、最終的にディスクがいっぱいになる可能性があります。
サブスクリプションがレプリケーションスロットに関連付けられている場合、トランザクションブロック内でDROP subscriptionを実行することはできません。
例
サブスクリプションを削除する:
ドロップサブスクリプションmysub;