CREATE DATABASE

Nom

CREATE DATABASE -- crée une nouvelle base de données

Synopsis

CREATE DATABASE nom
    [ [ WITH ] [ OWNER [=] propriétaire ]
           [ TEMPLATE [=] modèle
]
           [ ENCODING [=] codage
]
           [ TABLESPACE [=] espacelogique ] ]

Description

CREATE DATABASE crée une nouvelle base de données PostgreSQL.

Pour créer une base de données, vous devez être super-utilisateur ou avoir le droit spécial CREATEDB. Regardez CREATE USER.

Normalement, le créateur devient le propriétaire de la nouvelle base. Les superutilisateurs peuvent créer des bases dont le propriétaire sera un autre utilisateur en utilisant la clause OWNER. Ils peuvent même créer des bases qui appartiendront à des utilisateurs qui n'ont aucun droits spéciaux. Les utilisateurs qui ne sont pas superutilisateurs mais qui possèdent le privilège CREATEDB peuvent seulement créer des bases de données dont ils seront les propriétaires.

Par défaut, la nouvelle base de données sera créée en clonant la base système standard template1. Un modèle différent peut être spécifié en écrivant TEMPLATE nom. En particulier, en écrivant TEMPLATE template0, vous pouvez créer une base de données vierge contenant seulement les objets standards pré-définis par votre version de PostgreSQL. Ceci est utile si vous souhaitez éviter de copier les objets de l'installation locale qui ont pû être ajoutés à template1.

Paramètres

nom

Le nom de la base de données à créer.

propriétaire

Un nom d'utilisateur de la base qui sera le propriétaire de la nouvelle base de données ou DEFAULT pour utiliser l'option par défaut (c'est-à-dire utiliser le nom de l'utilisateur qui exécute la commande).

modèle

Le nom du modèle depuis lequel créer la nouvelle base de données ou DEFAULT pour utiliser le modèle par défaut (template1).

encodage

Jeu d'encodage à utiliser par la nouvelle base de données. Spécifiez une chaîne (par exemple 'SQL_ASCII'), un nombre d'encodage de type entier ou DEFAULT pour utiliser l'encodage par défaut. Les ensembles de caractères supportés par le serveur PostgreSQL sont décrits dans Section 20.2.1.

espacelogique

Le nom du tablespace qui sera associé avec la nouvelle base de données ou DEFAULT pour utiliser le tablespace de la base de données modèle. Ce tablespace sera le tablespace par défaut utilisé pour les objets créés dans cette base de données. Voir CREATE TABLESPACE pour plus d'informations.

Les paramètres optionnels peuvent être écrits dans n'importe quel ordre, pas seulement l'ordre illustré au-dessus.

Notes

CREATE DATABASE ne peut pas être exécuté à l'intérieur d'un bloc de transactions.

Les erreurs suivants la ligne << could not initialize database directory >> (ne peut pas initialiser le répertoire de la base de données) sont le plus souvent dûes à des droits insuffisants sur le répertoire de données, à un disque plein ou à un autre problème du système de fichiers.

Utilisez l'instruction DROP DATABASE pour supprimer la base de données.

Le programme createdb est un emballage autour de cette commande. Il est fourni pour la convenance.

Bien qu'il soit possible de copier une base de données autre que template1 en spécifiant son nom comme modèle, ceci n'est pas (encore) prévu comme un service << COPY DATABASE >> d'usage général. Nous recommandons que les bases de données utilisées comme modèles soient en mode lecture seule. Regardez la Section 18.3 pour plus d'informations.

Exemples

Pour créer une nouvelle base de données :

CREATE DATABASE lusiadas;

Pour créer une base de données ventes possédée par l'utilisateur app_ventes avec le tablespace espace_ventes par défaut :

CREATE DATABASE ventes OWNER app_ventes TABLESPACE espace_ventes;

Pour créer une base de données musique qui supporte l'ensemble de caractères ISO-8859-1  :

CREATE DATABASE musique ENCODING 'LATIN1';

Compatibilité

Il n'existe pas d'instruction CREATE DATABASE dans le standard SQL. Les bases de données sont équivalentes aux catalogues, dont la création est définie lors de l'implémentation.