CREATE SCHEMA

Nom

CREATE SCHEMA -- d�finit un nouveau sch�ma

Synopsis

CREATE SCHEMA nom_sch�ma [ AUTHORIZATION nom_utilisateur ] [ �l�ment_sch�ma [ ... ] ]
CREATE SCHEMA AUTHORIZATION nom_utilisateur [ �l�ment_sch�ma [ ... ] ]

Description

CREATE SCHEMA cr�e un nouveau sch�ma dans la base de donn�es en cours. Le nom du sch�ma doit �tre distinct du nom des diff�rents sch�mas existants dans la base de donn�es en cours.

Un sch�ma est essentiellement un espace logique : il contient des objets nomm�s (tables, types de donn�es, fonctions et op�rateurs) dont les noms pourraient �tre ceux d'autres objets existants dans d'autres sch�mas. Les noms d'objets sont accessible soit en <<�qualifiant�>> leur noms avec le nom du sch�ma en pr�fixe ou en configurant un chemin de recherche qui inclut le(s) sch�ma(s) d�sir�(s). Les objets non qualifi�s sont cr��s dans le sch�ma actuel (celui qui se trouve au d�but du chemin de rechercher, qui peut �tre d�termin� avec la fonction current_schema).

De fa�on optionnelle, CREATE SCHEMA peut inclure des sous-commandes pour cr�er des objets � l'int�rieur du nouveau sch�ma. Les sous-commandes sont trait�es essentiellement comme des commandes s�par�es lanc�es apr�s la cr�ation du sch�ma, sauf que, si la clause AUTHORIZATION est utilis�e, tous les objets cr��s seront poss�d�s par cet utilisateur.

Param�tres

nom_sch�ma

Le nom d'un sch�ma � cr�er. Si il est oubli�, le nom de l'utilisateur est utilis� comme nom de sch�ma.

nom_utilisateur

Le nom de l'utilisateur qui poss�dera le sch�ma. Si oubli�, r�cup�re par d�faut l'utilisateur ex�cutant la commande. Seuls les superutilisateurs peuvent cr�er des sch�mas poss�d�s par d'autres utilisateurs qu'eux-m�mes.

�l�ment_sch�ma

Une instruction SQL d�finissant un objet � cr�er � l'int�rieur du sch�ma. Actuellement, seules CREATE TABLE, CREATE VIEW et GRANT sont accept�es comme clauses � l'int�rieur de CREATE SCHEMA. D'autres types d'objets peuvent �tre cr��s dans des commandes s�par�es une fois le sch�ma cr��.

Notes

Pour cr�er un sch�ma, l'utilisateur appelant doit avoir le droit CREATE sur la base de donn�es actuelle. (Bien s�r, les superutilisateurs n'ont pas besoin de cette v�rification.)

Exemples

Cr�er un sch�ma :

CREATE SCHEMA mon_schema;

Cr�er un sch�ma pour l'utilisateur joe ; le sch�ma sera aussi nomm� joe :

CREATE SCHEMA AUTHORIZATION joe;

Cr�er un sch�ma et lui ajouter une table et une vue :

CREATE SCHEMA hollywood
    CREATE TABLE films (titre text, sortie date, recompenses text[])
    CREATE VIEW gagnants AS
        SELECT titre, sortie FROM films WHERE recompenses IS NOT NULL;

Notez que les sous-commandes individuelles ne se terminent pas avec des points-virgules.

Ce qui suit est une fa�on �quivalente d'accomplir la m�me chose :

CREATE SCHEMA hollywood;
CREATE TABLE hollywood.films (titre text, sortie date, recompenses text[]);
CREATE VIEW hollywood.gagnants AS
    SELECT titre, sortie FROM hollywood.films WHERE recompenses IS NOT NULL;

Compatibilit�

Le standard SQL autorise une clause DEFAULT CHARACTER SET dans CREATE SCHEMA, ainsi que plus de types de sous-commandes qui ce qui est actuellement accept� par PostgreSQL.

Le standard SQL sp�cifie que les sous-commandes dans CREATE SCHEMA peuvent appara�tre dans n'importe quel ordre. L'impl�mentation actuelle de PostgreSQL ne g�re pas tous les cas de r�f�rences dans les sous-commandes ; il pourrait �tre n�cessaire de r�ordonner les sous-commandes pour �viter certaines r�f�rences.

Suivant le standard SQL, le propri�taire d'un sch�ma poss�de toujours des objets. PostgreSQL permet aux sch�mas de contenir des objets poss�d�s par d'autres utilisateurs que le propri�taire du sch�ma. Ceci peut arriver seulement si le propri�taire du sch�ma donne le privil�ge CREATE de son sch�ma � d'autres personnes.

Voir aussi

ALTER SCHEMA, DROP SCHEMA