Documentation PostgreSQL 14.22 » Référence » Commandes SQL » ALTER PUBLICATION

Précédent | Niveau supérieur | Suivant
ALTER PROCEDURE | Sommaire | ALTER ROLE

## ALTER PUBLICATION

ALTER PUBLICATION — change la définition d'une publication

## Synopsis

    ALTER PUBLICATION name ADD TABLE [ ONLY ] nom_table [ * ] [, ...]
    ALTER PUBLICATION name SET TABLE [ ONLY ] nom_table [ * ] [, ...]
    ALTER PUBLICATION name DROP TABLE [ ONLY ] nom_table [ * ] [, ...]
    ALTER PUBLICATION name SET ( param_publication [= valeur] [, ... ] )
    ALTER PUBLICATION name OWNER TO { nouveau_proprietaire | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    ALTER PUBLICATION name RENAME TO nouveau_nom

## Description

La commande `ALTER PUBLICATION` peut modifier les attributs d'une publication.

Les trois premières variantes modifient les tables faisant partie de la publication. La clause `SET TABLE` remplacera la liste des tables de la publication avec celle indiquée. Les clauses `ADD TABLE` et `DROP TABLE`, respectivement, ajouteront et supprimeront une table à la publication. Notez qu'ajouter des tables à une publication où des souscriptions ont déjà eu lieu nécessiteront un `ALTER SUBSCRIPTION ... REFRESH PUBLICATION` du côté de l'abonné pour devenir réelle.

La quatrième variante de cette commande listée dans le synopsis peut changer toutes les propriétés de la publication spécifiées dans CREATE PUBLICATION. Les propriétés qui ne sont pas mentionnées dans la commande restent à leurs anciennes valeurs.

Les variantes suivantes modifient le propriétaire et le nom de la publication.

Vous devez être le propriétaire de la publication pour utiliser `ALTER PUBLICATION`. Ajouter une table à une publication requiert en plus d'être le propriétaire de cette table. Pour changer le propriétaire, vous devez également être un membre direct ou indirect du nouveau rôle propriétaire. Le nouveau propriétaire doit avoir le privilège `CREATE` sur la base de données. De plus, le nouveau propriétaire d'une publication `FOR ALL TABLES` doit être un super-utilisateur. Toutefois, un super-utilisateur peut changer le propriétaire d'une publication quelque soient ces restrictions.

## Paramètres

`name`

  Le nom d'une publication existante dont la définition doit être modifiée.

`nom_table`

  Nom d'une table existante. Si `ONLY` est spécifié avant le nom de la table, seule cette table est affectée. Si `ONLY` n'est pas spécifié, la table et toutes les tables descendantes (s'il y en a) sont affectées. `*` peut être spécifié de manière facultative après le nom de la table pour indiquer explicitement que les tables descendantes doivent être inclues.

`SET ( `param_publication` [= `valeur`] [, ... ] )`

  Cette clause change les paramètres de la publication positionnés à l'origine par CREATE PUBLICATION. Consulter cette page pour plus d'information.

`nouveau_proprietaire`

  Le nom d'utilisateur du nouveau propriétaire de la publication.

`nouveau_nom`

  Le nouveau nom de la publication.

## Exemples

Changer la publication pour ne publiquer que les suppression et les mises à jour :

    ALTER PUBLICATION noinsert SET (publish = 'update, delete');

Ajouter des tables à la publication :

    ALTER PUBLICATION mypublication ADD TABLE users, departments;

## Compatibilé

`ALTER PUBLICATION` est une extension PostgreSQL au standard SQL.

## Voir aussi

CREATE PUBLICATION, DROP PUBLICATION, CREATE SUBSCRIPTION, ALTER SUBSCRIPTION