ALTER PUBLICATIONコマンドは、パブリケーションの属性を変更できます。
説明
最初の3つのバリアントは、パブリケーションの一部であるテーブルを変更します。 SET TABLE句は、パブリケーション内のテーブルのリストを指定されたテーブルに置き換えます。 ADD TABLEおよびDROP TABLE句は、パブリケーションから1つ以上のテーブルを追加および削除します。 すでにサブスクライブされているパブリケーションにテーブルを追加するには、ALTERサブスクリプションが必要になることに注意してください... 有効になるために、購読側でのREFRESH PUBLICATIONアクション。
概要に記載されているこのコマンドの4番目のバリアントは、CREATE publicationで指定されているすべてのパブリケーションプロパティを変更できます。 コマンドに記載されていないプロパティは、以前の設定を保持します。
残りのバリアントは、所有者と出版物の名前を変更します。
ALTER publicationを使用するには、パブリケーションを所有する必要があります。 パブリケーションにテーブルを追加するには、そのテーブルを所有する必要があります。 所有者を変更するには、新しい所有ロールの直接または間接のメンバーである必要もあります。 新しい所有者には、データベースに対するCREATE権限が必要です。 また、FOR ALL TABLESパブリケーションの新しい所有者はスーパーユーザーでなければなりません。 ただし、スーパーユーザーは、これらの制限に関係なく、パブリケーションの所有権を変更できます。
概要
ALTER PUBLICATION name ADD TABLE [のみ] table_name [ * ] [, ...]
ALTER PUBLICATION名SET TABLE [のみ] table_name [ * ] [, ...]
ALTER PUBLICATION名ドロップテーブル [のみ] table_name [ * ] [, ...]
ALTER PUBLICATION名SET ( publication_parameter [= value] [, ... ] )
ALTER PUBLICATION名の所有者から {new_owner | CURRENT_USER | SESSION_USER}
ALTER PUBLICATION名の新しい_nameへの変更パラメーター
name: 定義を変更する既存のパブリケーションの名前。
table_name: 既存のテーブルの名前。 テーブル名の前にONLYを指定した場合、そのテーブルのみが影響を受けます。 ONLYが指定されていない場合、テーブルとそのすべての子孫テーブル (存在する場合) が影響を受けます。 必要に応じて、テーブル名の後に * を指定して、子孫テーブルが含まれることを明示的に示すことができます。
SET (publication_parameter [= value] [, ... ] ): この句は、CREATE publicationによって最初に設定されたパブリッシングパラメーターを変更します。 詳細については、そこを参照してください。
new_owner: パブリケーションの新しい所有者のユーザー名。
new_name: パブリケーションの新しい名前です。
例
パブリケーションを削除と更新のみを公開するように変更します。
ALTER PUBLICATION noinsert SET (publish = 'update, delete');パブリケーションにいくつかのテーブルを追加します。
ALTER PUBLICATION mypublication ADD TABLEユーザー、部門;