Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
CREATE SCHEMA
Définit un nouveau schéma pour la base de données actuelle.
Privilèges requis
Les privilèges suivants sont requis pour CREATE SCHEMA :
Superuser
Utilisateurs ayant le CREATE SCHEMA privilège
Syntaxe
CREATE SCHEMA [ IF NOT EXISTS ] schema_name [ AUTHORIZATION username ] [ QUOTA {quota [MB | GB | TB] | UNLIMITED} ] [ schema_element [ ... ] CREATE SCHEMA AUTHORIZATION username[ QUOTA {quota [MB | GB | TB] | UNLIMITED} ] [ schema_element [ ... ] ]
Paramètres
- SI NOT EXISTS
-
Clause indiquant que si le schéma spécifié existe déjà, la commande ne doit faire aucune modification et renvoyer un message selon lequel le schéma existe, plutôt que de mettre fin avec une erreur.
Cette clause est utile lors de la création de scripts, afin que le script n'échoue pas s'il CREATE SCHEMA tente de créer un schéma qui existe déjà.
- nom_schéma
-
Nom du nouveau schéma. Le nom du schéma ne peut pas être
PUBLIC
. Pour plus d’informations sur les noms valides, consultez Noms et identificateurs.Note
La liste des schémas du paramètre de configuration search_path détermine la priorité des objets portant le même nom quand il y est fait référence sans noms de schéma.
- AUTHORIZATION
-
Clause qui accorde la propriété à un utilisateur spécifié.
- nom d’utilisateur
-
Nom du propriétaire du schéma.
- élément_schéma
-
Définition d’un ou de plusieurs objets à créer dans le schéma.
- QUOTA
-
Quantité maximale d’espace disque que le schéma spécifié peut utiliser. Cet espace est l’utilisation collective du disque. Il inclut toutes les tables permanentes, les vues matérialisées selon le schéma spécifié et les copies dupliquées de toutes les tables ALL distribuées sur chaque nœud de calcul. Le quota de schéma ne prend pas en compte les tables temporaires créées dans le cadre d’un espace de noms ou d’un schéma temporaire.
Pour afficher les quotas de schéma configurés, consultez SVV_SCHEMA_QUOTA_STATE.
Pour afficher les enregistrements où les quotas de schéma ont été dépassés, consultez STL_SCHEMA_QUOTA_VIOLATIONS.
Amazon Redshift convertit la valeur sélectionnée en mégaoctets. Le gigaoctet est l’unité de mesure par défaut lorsque vous ne spécifiez pas de valeur.
Vous devez être un superutilisateur de base de données pour définir et modifier un quota de schéma. Un utilisateur qui n'est pas un superutilisateur mais qui dispose d'une CREATE SCHEMA autorisation peut créer un schéma avec un quota défini. Lorsque vous créez un schéma sans définir de quota, le schéma dispose d’un quota illimité. Lorsque vous définissez le quota en dessous de la valeur actuelle utilisée par le schéma, Amazon Redshift ne permet pas d’ingestion supplémentaire tant que vous n’avez pas libéré d’espace disque. Une DELETE instruction supprime les données d'une table et l'espace disque n'est libéré que lors de son VACUUM exécution.
Amazon Redshift vérifie la présence de violations de quotas dans chaque transaction avant de valider la transaction. Amazon Redshift compare la taille (l’espace disque utilisé par toutes les tables d’un schéma) de chaque schéma modifié au quota défini. Étant donné que la vérification des violations de quota se produit à la fin d’une transaction, la limite de taille peut dépasser temporairement le quota dans une transaction avant qu’il ne soit validé. Lorsqu’une transaction dépasse le quota, Amazon Redshift abandonne la transaction, interdit les ingestions ultérieures et rétablit toutes les modifications jusqu’à ce que vous libériez de l’espace disque. En raison du nettoyage interne VACUUM et en arrière-plan, il est possible qu'un schéma ne soit pas plein au moment où vous le vérifiez après l'annulation d'une transaction.
Dans certains cas exceptionnels, Amazon Redshift ne tient pas compte des violations de quotas et valide les transactions. Amazon Redshift procède ainsi pour les transactions qui se composent uniquement d'une ou de plusieurs des instructions suivantes lorsqu'il n'y a aucune déclaration INSERT ou déclaration d'COPYingestion dans la même transaction :
-
DELETE
-
TRUNCATE
-
VACUUM
-
DROP TABLE
-
ALTERTABLEAPPENDuniquement lors du déplacement de données du schéma complet vers un autre schéma non complet
-
- UNLIMITED
-
Amazon Redshift n’impose aucune limite à la croissance de la taille totale du schéma.
Limites
Amazon Redshift applique les limites suivantes pour les schémas.
-
Il y a un maximum de 9900 schémas par base de données.
Exemples
L'exemple suivant crée un schéma nommé US_ SALES et attribue la propriété à l'utilisateurDWUSER.
create schema us_sales authorization dwuser;
L'exemple suivant crée un schéma nommé US_SALES, attribue la propriété à l'utilisateur DWUSER et définit le quota à 50 Go.
create schema us_sales authorization dwuser QUOTA 50 GB;
Pour afficher le nouveau schéma, interrogez la table du NAMESPACE catalogue PG_ comme indiqué ci-dessous.
select nspname as schema, usename as owner from pg_namespace, pg_user where pg_namespace.nspowner = pg_user.usesysid and pg_user.usename ='dwuser'; schema | owner ----------+---------- us_sales | dwuser (1 row)
L'exemple suivant crée le SALES schéma US_ ou ne fait rien et renvoie un message s'il existe déjà.
create schema if not exists us_sales;