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

Précédent | Niveau supérieur | Suivant
ALTER STATISTICS | Sommaire | ALTER SYSTEM

## ALTER SUBSCRIPTION

ALTER SUBSCRIPTION — modifier la définition d'une souscription

## Synopsis

    ALTER SUBSCRIPTION nom CONNECTION 'conninfo'
    ALTER SUBSCRIPTION nom SET PUBLICATION nom_publication [, ...] [ WITH ( option_publication [= valeur] [, ... ] ) ]
    ALTER SUBSCRIPTION nom ADD PUBLICATION nom_publication [, ...] [ WITH ( option_publication [= valeur] [, ... ] ) ]
    ALTER SUBSCRIPTION nom DROP PUBLICATION nom_publication [, ...] [ WITH ( option_publication [= valeur] [, ... ] ) ]
    ALTER SUBSCRIPTION nom REFRESH PUBLICATION [ WITH ( option_rafraichissement [= value] [, ... ] ) ]
    ALTER SUBSCRIPTION nom ENABLE
    ALTER SUBSCRIPTION nom DISABLE
    ALTER SUBSCRIPTION nom SET ( subscription_parameter [= valeur] [, ... ] )
    ALTER SUBSCRIPTION nom OWNER TO { nouveau_proprietaire | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    ALTER SUBSCRIPTION nom RENAME TO nouveau_nom

## Description

`ALTER SUBSCRIPTION` peut changer la plupart des propriétés d'un souscription pouvant être spécifiées dans CREATE SUBSCRIPTION.

Vous devez être le propriétaire de la souscription pour utiliser `ALTER SUBSCRIPTION`. Pour modifier le propriétaire, vous devez également être un membre direct ou indirect du nouveau rôle propriétaire. Le nouveau propriétaire doit être un super-utilisateur. (Actuellement, tous les propriétaires de souscription doivent être super-utilisateurs, donc les vérifications du propriétaire seront en fait contournées. Mais ceci pourrait changer dans le futur.)

Lors du rafraichissement d'une publication, nous supprimons les relations qui ne font plus partie de la publication, et nous supprimons aussi les slots de synchronisation de table s'il en existe. Il est nécessaire de supprimer ces slots pour que les ressources allouées à la souscription sur l'hôte distant soient rendues. Si à cause d'erreurs réseau ou autres, PostgreSQL est incapable de supprimer les slots, un message d'erreur sera renvoyé. Pour continuer, l'utilisateur doit soit tenter une nouvelle fois l'opération, soit déassocier le slot de la souscription et supprimer la souscription comme expliquée dans DROP SUBSCRIPTION.

Les commandes `ALTER SUBSCRIPTION ... REFRESH PUBLICATION` et `ALTER SUBSCRIPTION ...{SET|ADD|DROP} PUBLICATION ...` avec l'option `refresh` activée ne peuvent pas être exécutées dans un bloc de transaction.

## Paramètres

`nom`

  Le nom de la souscription dont la propriété doit être modifiée.

`CONNECTION '`conninfo`'`

  Cette clause modifie la propriété de connexion positionnée à l'origine par CREATE SUBSCRIPTION. S'y référer pour plus d'informations.

`SET PUBLICATION `nom_publication``
`ADD PUBLICATION `nom_publication``
`DROP PUBLICATION `nom_publication``

  Change la liste des publications souscrites. `SET` remplace la liste entière des publications avec une nouvelle liste, `ADD` ajoute des publications supplémentaires à la liste de publications, et `DROP` supprime des publications de la liste des publications. Voir CREATE SUBSCRIPTION pour plus d'informations. Par défaut, cette commande agira aussi comme `REFRESH PUBLICATION`.

  `option_publication` indique des options supplémentaires pour cette opération. Les options supportées sont :

  `refresh` (`boolean`)

    Si false, la commande n'essaiera pas de rafraichir des informations des tables. `REFRESH PUBLICATION` devrait alors être exécutée séparément. La valeur par défaut est `true`.

  De plus, les options décrites sous `REFRESH PUBLICATION` peuvent être spécifiées pour contrôler l'opération implicite de rafraichissement.

`REFRESH PUBLICATION`

  Récupère les informations de table manquante depuis la publication. Cela commencera la réplication des tables qui avaient été ajoutées en tant que souscription aux publications depuis la dernière exécution de `REFRESH PUBLICATION` ou depuis `CREATE SUBSCRIPTION`.

  `option_rafraichissement` spécifie les options supplémentaires pour l'opération de rafraîchissement. Les options supportées sont :

  `copy_data` (`boolean`)

    Spécifie si les données existantes dans les publications qui sont en train d'être souscrites devraient être copiées une fois que la réplication démarrera. La valeur par défaut est `true`. (Les tables précédemment souscrites ne sont pas copiées.)

`ENABLE`

  Active la souscription précédemment désactivée, démarrant le worker de réplication logique à la fin de la transaction.

`DISABLE`

  Désactive la souscription en cours d'exécution, arrêtant le worker de réplication logique à la fin de la transaction.

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

  Cette clause change les paramètres initialement positionnés par CREATE SUBSCRIPTION. S'y référer pour plus d'informations. Les paramètres modifiables sont are `slot_name`, `synchronous_commit`, `binary` et `streaming`.

`nouveau_proprietaire`

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

`nouveau_nom`

  Le nouveau nom de la souscription.

## Exemples

Changer la publicatio souscrites par une publication en `insert_only` :

    ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only;

Désactive (stoppe) la souscription :

    ALTER SUBSCRIPTION mysub DISABLE;

## Compatibilité

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

## Voir aussi

CREATE SUBSCRIPTION, DROP SUBSCRIPTION, CREATE PUBLICATION, ALTER PUBLICATION