SUBSCRIPTIONは現在のデータベースに新しいサブスクリプションを追加します。サブスクリプションの名前は現在のデータベースに存在するどのサブスクリプションの名前とも異なるものでなければなりません。サブスクリプションはパブリッシャーへのレプリケーション接続を表します。そのためこのコマンドはローカルのカタログに定義を追加するだけでなく、パブリッシャーのレプリケーションスロットも作成します。このコマンドが実行されるトランザクションがコミットされた時点で、新しいサブスクリプションに対してデータを複製する論理レプリケーションワーカが開始されます。サブスクリプションおよび論理レプリケーションの全体像についての追加情報は31.2および第31章に記述されています。パラメータsubscription_name新しいサブスクリプションの名前です。'conninfo'パブリッシャーへの接続文字列です。詳細は34.1.1を参照してください。publication_nameパブリッシャー上のパブリケーションで、サブスクリプションの対象となるものの名前です。)この句ではサブスクリプションのオプションパラメータを指定します。以下のパラメータがサポートされています。(boolean)サブスクリプションの対象となるパブリケーションの既存データが、レプリケーションの開始時にコピーされるかどうかを指定します。デフォルトはtrueです。(boolean)このコマンドがパブリッシャー上にレプリケーションスロットを作るかどうかを指定します。デフォルトはtrueです。(boolean)サブスクリプションが複製の動作をすぐに行うか、あるいは単に設定をするだけでまだ開始しないかを指定します。デフォルトはtrueです。(string)使用するレプリケーションスロットの名前です。デフォルトの挙動では、サブスクリプションの名前をスロット名として使用します。slot_nameをNONEに設定すると、サブスクリプションに紐付けられたレプリケーションスロットがなくなります。これはレプリケーションスロットを後で手作業で作成する場合に使用できます。そのようなサブスクリプションは、enabledとcreate_slotの両方をfalseに設定しなければなりません。(enum)このパラメータの値はsynchronous_commitの設定をオーバーライドします。デフォルト値はoffです。論理レプリケーションではoffを使用するのが安全です。することで、同期の失敗によりサブスクライバがトランザクションを失った場合でも、パブリッシャーからデータが再送されます。同期論理レプリケーションを行う場合は別の設定が適切かもしれません。論理レプリケーションのワーカは書き込みおよび吐き出しの位置をパブリッシャーに報告しますが、同期レプリケーションを行っているときは、パブリッシャは実際に吐き出しがされるのを待ちます。これはつまり、サブスクリプションが同期レプリケーションで使われている時に、サブスクライバのsynchronous_commitをoffに設定すると、パブリッシャーでのCOMMITの遅延が増大するかもしれない、ということを意味します。この場合、synchronous_commitをlocalまたはそれ以上に設定することが有利になりえます。SUBSCRIPTIONがパブリッシャーに接続するかどうかを指定します。これをfalseに設定すると、enabled、create_slot、copy_dataのデフォルト値をfalseに変更します。connectをfalseに設定し、enabled、create_slotまたはcopy_dataをtrueに設定することは許されません。このオプションがfalseに設定されると接続が行われないため、テーブルはサブスクライブされません。そのため、サブスクリプションを有効にしても、何も複製されません。PUBLICATIONを実行する必要があります。注釈サブスクリプションとパブリケーションのインスタンスの間のアクセス制御をどのように設定するかの詳細については、31.7を参照してください。SUBSCRIPTIONをトランザクションブロックの内側で実行することはできません。同じデータベースクラスタに接続するサブスクリプション(例えば、同一のクラスタ内のデータベース間で複製を行う、あるいは同一のデータベース内で複製を行う)の作成は、同じコマンド内でレプリケーションスロットが作成されない場合にのみ成功します。SUBSCRIPTIONの呼び出しはハングアップします。falseを使ってサブスクリプションを作成してください。これは実装上の制限で、将来のリリースでは解決されるかもしれません。例パブリケーションmypublicationおよびinsert_onlyのテーブルを複製する、リモートサーバへのサブスクリプションを作成し、コミット後、すぐにレプリケーションを開始します。insert_only;パブリケーションinsert_onlyのテーブルを複製するリモートサーバへのサブスクリプションを作成しますが、後に有効化するまではレプリケーションを開始しません。SUBSCRIPTIONはPostgreSQLの拡張です。