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

ALTER DATABASE

ALTER DATABASE — Modifier une base de données

Synopsis

ALTER DATABASE nom [ [ WITH ] option [ ... ] ]

option peut être :

    ALLOW_CONNECTIONS connexions_autorisées
    CONNECTION LIMIT limite_connexion
    IS_TEMPLATE est_modèle

ALTER DATABASE nom RENAME TO nouveau_nom
ALTER DATABASE nom OWNER TO { nouveau_propriétaire | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER DATABASE nom SET TABLESPACE nouveau_tablespace

ALTER DATABASE name REFRESH COLLATION VERSION

ALTER DATABASE nom SET paramètre { TO | = } { valeur | DEFAULT }
ALTER DATABASE nom SET paramètre FROM CURRENT
ALTER DATABASE nom RESET paramètre
ALTER DATABASE nom RESET ALL
  

Description

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.

Paramètres

nom

Le nom de la base dont les attributs sont à modifier.

connexions_autorisées

Personne ne peut se connecter à cette base de données lorsque cette option est à false.

limite_connexion

Le 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_nom

Le nouveau nom de la base.

nouveau_propriétaire

Le nouveau propriétaire de la base.

nouveau_tablespace

Le 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 VERSION

Met à jour la version de la collation de la base. Voir Notes pour l'historique.

paramètre
valeur

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 19 pour plus d'informations sur les noms de paramètres et valeurs autorisées.

Notes

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.

Exemples

Désactiver les parcours d'index par défaut de la base test ::

ALTER DATABASE test SET enable_indexscan TO off;
   

Compatibilité

La commande ALTER DATABASE est une extension PostgreSQL.