Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
CREATE SCHEMA nom_sch�ma [ AUTHORIZATION nom_utilisateur ] [ �l�ment_sch�ma [ ... ] ] CREATE SCHEMA AUTHORIZATION nom_utilisateur [ �l�ment_sch�ma [ ... ] ]
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.
Le nom d'un sch�ma � cr�er. Si il est oubli�, le nom de l'utilisateur est utilis� comme nom de sch�ma.
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.
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��.
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.)
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;
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.
Pr�c�dent | Sommaire | Suivant |
CREATE RULE | Niveau sup�rieur | CREATE SEQUENCE |