PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 14.15 » Référence » Commandes SQL » ALTER SUBSCRIPTION

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.