CREATE SCHEMA - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

CREATE SCHEMA

Definisce un nuovo schema per il database corrente.

Privilegi richiesti

Di seguito sono riportati i privilegi richiesti per: CREATE SCHEMA

  • Superuser

  • Utenti con il privilegio CREATE SCHEMA

Sintassi

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 [ ... ] ]

Parametri

SE NOT EXISTS

Clausola che indica che se lo schema specificato esiste già, il comando non deve apportare modifiche e deve restituire un messaggio che lo schema esiste, piuttosto che terminare con un errore.

Questa clausola è utile per la creazione di script, quindi lo script non ha esito negativo se CREATE SCHEMA tenta di creare uno schema già esistente.

schema_name

Nome del nuovo schema. Il nome dello schema non può essere PUBLIC. Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori.

Nota

L'elenco di schemi nel parametro di configurazione search_path determina la precedenza degli oggetti con nome identico quando a cui viene fatto riferimento senza nome di schema.

AUTHORIZATION

Clausola che concede la proprietà a un utente specificato.

username

Nome del proprietario dello schema.

schema_element

Definizione per uno o più oggetti da creare all'interno dello schema.

QUOTA

La quantità massima di spazio su disco che lo schema specificato può utilizzare. Questo spazio è l'utilizzo del disco collettivo. Include tutte le tabelle permanenti, le viste materializzate secondo lo schema specificato e copie duplicate di tutte le tabelle con ALL distribuzione su ogni nodo di calcolo. La quota dello schema non tiene conto delle tabelle temporanee create come parte di uno spazio dei nomi temporaneo o di uno schema.

Per visualizzare le quote dello schema configurate, consultare SVV_SCHEMA_QUOTA_STATE.

Per visualizzare i record in cui le quote dello schema sono state superate, consultare STL_SCHEMA_QUOTA_VIOLATIONS.

Amazon Redshift converte il valore selezionato in megabyte. Il gigabyte è l'unità di misura predefinita quando non si specifica un valore.

Per impostare e modificare una quota dello schema, è necessario essere un utente con privilegi avanzati del database. Un utente che non è un superutente ma che dispone dell'CREATESCHEMAautorizzazione può creare uno schema con una quota definita. Quando si crea uno schema senza definire una quota, lo schema ha una quota illimitata. Quando si imposta la quota al di sotto del valore corrente utilizzato dallo schema, Amazon Redshift non consente ulteriori operazioni di importazione finché non si libera spazio su disco. Un'DELETEistruzione elimina i dati da una tabella e lo spazio su disco viene liberato solo durante l'esecuzione. VACUUM

Amazon Redshift controlla ogni transazione alla ricerca di violazioni delle quote prima di eseguire il commit della transazione. Amazon Redshift controlla le dimensioni (lo spazio su disco utilizzato da tutte le tabelle in uno schema) di ogni schema modificato rispetto alla quota impostata. Poiché il controllo di violazione di quota si verifica alla fine di una transazione, il limite di dimensioni può superare temporaneamente la quota all'interno di una transazione prima del commit. Quando una transazione supera la quota, Amazon Redshift interrompe la transazione, vieta le successive operazioni di importazione e ripristina tutte le modifiche fino a quando non si libera spazio su disco. A causa della pulizia interna VACUUM e dello sfondo, è possibile che uno schema non sia completo quando lo si controlla dopo una transazione annullata.

In via eccezionale, Amazon Redshift ignora la violazione della quota e in alcuni casi esegue il commit delle transazioni. Amazon Redshift esegue questa operazione per le transazioni che consistono esclusivamente in una o più delle seguenti dichiarazioni in cui non è presente una INSERT dichiarazione di COPY importazione nella stessa transazione:

  • DELETE

  • TRUNCATE

  • VACUUM

  • DROP TABLE

  • ALTERTABLEAPPENDsolo quando si spostano i dati dallo schema completo a un altro schema non completo

UNLIMITED

Amazon Redshift non impone limiti alla crescita della dimensione totale dello schema.

Limiti

Amazon Redshift applica i seguenti limiti per gli schemi.

  • Un massimo di 9900 schemi per database.

Esempi

L'esempio seguente crea uno schema denominato US_ SALES e ne assegna la proprietà all'utente. DWUSER

create schema us_sales authorization dwuser;

L'esempio seguente crea uno schema denominato US_SALES, assegna la proprietà all'utente DWUSER e imposta la quota a 50 GB.

create schema us_sales authorization dwuser QUOTA 50 GB;

Per visualizzare il nuovo schema, interrogate la tabella del NAMESPACE catalogo PG_ come illustrato di seguito.

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'esempio seguente crea lo SALES schema US_ o non fa nulla e restituisce un messaggio se esiste già.

create schema if not exists us_sales;