ALTER DATABASE — Modifier une base de données
ALTER DATABASEnom[ [ WITH ]option[ ... ] ] oùoptionpeut être : ALLOW_CONNECTIONSconnexions_autoriséesCONNECTION LIMITlimite_connexionIS_TEMPLATEest_modèleALTER DATABASEnomRENAME TOnouveau_nomALTER DATABASEnomOWNER TO {nouveau_propriétaire| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER DATABASEnomSET TABLESPACEnouveau_tablespaceALTER DATABASEnameREFRESH COLLATION VERSION ALTER DATABASEnomSETparamètre{ TO | = } {valeur| DEFAULT } ALTER DATABASEnomSETparamètreFROM CURRENT ALTER DATABASEnomRESETparamètreALTER DATABASEnomRESET ALL
ALTER DATABASE modifie la définition d'une base de
données.
La première forme modifie certains paramètres d'une base de données (voir ci-dessous pour les détails). Seul le propriétaire de la base de données ou un superutilisateur peut modifier ces paramètres.
La deuxième forme permet de renommer la base. Seul le propriétaire ou un
superutilisateur peut renommer une base. Un propriétaire qui n'est pas
superutilisateur doit en outre posséder le droit
CREATEDB. La base en cours d'utilisation ne peut pas être
renommée (on se connectera à une autre base pour réaliser cette opération).
La troisième forme change le propriétaire de la base de données.
Pour modifier le propriétaire, vous devez être capable d'utiliser
SET ROLE vers le nouveau rôle propriétaire, et
vous devez disposer de l'attribut CREATEDB (les
superutilisateurs ont automatiquement tous ces droits).
La quatrième forme change le tablespace par défaut de la base de données.
Seuls le propriétaire de la base de données et un superutilisateur peuvent
le faire. Vous devez aussi avoir le droit CREATE pour le
nouveau tablespace. Cette commande déplace physiquement toutes les tables et
tous les index actuellement dans l'ancien tablespace par défaut de la base de
données vers le nouveau tablespace. Le nouveau tablespace par défaut doit
être vide pour cette base de données, et personne ne peut être connecté à la
base de données. Les tables et index placés dans d'autres tablespaces ne sont
pas affectés.
Les formes restantes modifient la valeur par défaut d'un paramètre de
configuration pour une base PostgreSQL. Par la
suite, à chaque fois qu'une nouvelle session est lancée, la valeur spécifique
devient la valeur par défaut de la session. Les valeurs par défaut de la base
deviennent les valeurs par défaut de la session. En fait, elles surchargent
tout paramètre présent dans postgresql.conf ou indiqué
sur la ligne de commande de postgres. Seul le propriétaire
de la base de données ou un superutilisateur peut modifier les valeurs par
défaut de la session pour une base. Certaines variables ne peuvent pas être
configurées de cette façon pour une base de données ou peuvent seulement être
configurées par un superutilisateur.
nomLe nom de la base dont les attributs sont à modifier.
connexions_autoriséesPersonne ne peut se connecter à cette base de données lorsque cette option est à false.
limite_connexionLe nombre de connexions concurrentes sur la base de données. -1 signifie aucune limite.
est_modèle
Avec cette option à true, cette base peut être clonée par tout utilisateur
ayant l'attribut CREATEDB. À false, seuls les
superutilisateurs et le propriétaire de la base de données peuvent la
cloner.
nouveau_nomLe nouveau nom de la base.
nouveau_propriétaireLe nouveau propriétaire de la base.
nouveau_tablespaceLe nouveau tablespace par défaut de la base de données.
Cette clause ne peut pas être exécutée dans un bloc de transaction.
REFRESH COLLATION VERSIONMet à jour la version de la collation de la base. Voir Notes pour l'historique.
paramètrevaleur
Configure cette valeur comme valeur par défaut de la base pour le
paramètre de configuration précisée. Si valeur
indique DEFAULT ou, de façon équivalente, si
RESET est utilisé, la configuration en cours pour cette
base est supprimée, donc la valeur système est utilisée pour les nouvelles
sessions. Utiliser RESET ALL permet de supprimer tous
les paramètres spécifiques de cette base. SET FROM
CURRENT sauvegarde la valeur actuelle du paramètre en tant que
valeur spécifique de la base.
Voir SET et Chapitre 20 pour plus d'informations sur les noms de paramètres et valeurs autorisées.
Il est possible de lier une valeur de session par défaut à un rôle plutôt qu'à une base. Voir ALTER ROLE à ce propos. En cas de conflit, les configurations spécifiques au rôle l'emportent sur celles spécifiques à la base.
Désactiver les parcours d'index par défaut de la base
test ::
ALTER DATABASE test SET enable_indexscan TO off;
La commande ALTER DATABASE est une extension
PostgreSQL.