Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
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 tablespace : 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). Une commande CREATE
spécifiant un objet non qualifié crée l'objet 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 ne peut pas commencer avec pg_ car de tels noms sont réservés aux schémas du système.
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, CREATE SEQUENCE, CREATE TRIGGER 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 |