ALTER DATABASE - 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à.

ALTER DATABASE

Cambia gli attributi di un database.

Privilegi richiesti

Per utilizzare ALTER DATABASE, è richiesto uno dei seguenti privilegi.

  • Superuser

  • Utenti con il privilegio ALTER DATABASE

  • Proprietario del database

Sintassi

ALTER DATABASE database_name { RENAME TO new_name | OWNER TO new_owner | CONNECTION LIMIT { limit | UNLIMITED } | COLLATE { CASE_SENSITIVE | CASE_INSENSITIVE } | ISOLATION LEVEL { SERIALIZABLE | SNAPSHOT } | INTEGRATION REFRESH {{ ALL | INERROR } TABLES [IN SCHEMA schema [, ...]] | TABLE schema.table [, ...]} }

Parametri

database_name

Nome del database da modificare. In genere, si modifica un database a cui non si è attualmente connessi; in ogni caso, le modifiche hanno effetto solo nelle sessioni successive. Puoi modificare il proprietario del database corrente, ma non è possibile rinominarlo:

alter database tickit rename to newtickit; ERROR: current database may not be renamed
RENAME TO

Rinomina il database specificato. Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori. Non puoi rinominare i database dev, padb_harvest, template0, template1 o sys:internal e non puoi rinominare il database corrente. Solo il proprietario del database o un superuser può rinominare un database; i proprietari che non sono utenti con privilegi avanzati devono inoltre avere il privilegio CREATEDB.

new_name

Nuovo nome del database.

OWNER TO

Cambia il proprietario del database specificato. Puoi modificare il proprietario del database corrente o di un altro database. Solo un utente con privilegi avanzati può cambiare il proprietario.

new_owner

Nuovo proprietario del database. Il nuovo proprietario deve essere un utente di database esistente con privilegi di scrittura. Per ulteriori informazioni sui privilegi degli utenti, consultare GRANT.

CONNECTION LIMIT { limit | UNLIMITED }

Numero massimo di connessioni di database che gli utenti possono aprire contemporaneamente. Il limite non viene applicato per gli utenti con privilegi avanzati. Utilizza la parola chiave UNLIMITED per consentire il numero massimo di connessioni simultanee. È possibile che venga applicato anche un limite al numero di connessioni per ciascun utente. Per ulteriori informazioni, consultare CREA UTENTE. Il valore predefinito è UNLIMITED. Per visualizzare le connessioni correnti, eseguire una query sulla vista di sistema STV_SESSIONS.

Nota

Se si applicano entrambi i limiti di connessione utente e database, deve essere disponibile uno slot di connessione inutilizzato che rientra in entrambi i limiti quando un utente tenta di connettersi.

COLLATE { CASE_SENSITIVE | CASE_INSENSITIVE }

Una clausola che specifica se la ricerca o il confronto tra stringhe fa distinzione tra maiuscole e minuscole o meno.

È possibile modificare la distinzione tra maiuscole e minuscole del database corrente che è vuoto.

Per modificare la distinzione tra maiuscole e minuscole, è necessario disporre del privilegio sul database corrente. Gli utenti con privilegi avanzati o i proprietari di database con il privilegio CREATE DATABASE possono anche modificare la distinzione tra maiuscole e minuscole.

ISOLATION LEVEL { SERIALIZABLE | SNAPSHOT }

Una clausola che specifica il livello di isolamento utilizzato quando vengono eseguite query su un database.

  • Isolamento SERIALIZABLE: fornisce la serializzabilità completa per le transazioni simultanee. Per ulteriori informazioni, consulta Isolamento serializzabile.

  • Isolamento SNAPSHOT: fornisce un livello di isolamento con protezione contro i conflitti di aggiornamento ed eliminazione.

Per ulteriori informazioni sui livelli di isolamento, consulta CREATE DATABASE.

Considerare quanto segue durante la modifica del livello di isolamento di un database:

  • Per modificare il livello di isolamento del database, è necessario disporre del privilegio utente con privilegi avanzati o del privilegio CREATE DATABASE per il database corrente.

  • Non è possibile modificare il livello di isolamento del database dev.

  • Non è possibile modificare il livello di isolamento all'interno di un blocco di transazioni.

  • Il comando alter isolation level non riesce se altri utenti sono connessi al database.

  • Il comando alter isolation level può modificare le impostazioni del livello di isolamento della sessione corrente.

INTEGRATION REFRESH {{ ALL | INERROR } TABLES [IN SCHEMA schema [, ...]] | TABLE schema.table [, ...]}

Una clausola che specifica se Amazon Redshift aggiorna tutte le tabelle o le tabelle con errori nello schema o nella tabella specificati. L'aggiornamento attiverà la replica completa delle tabelle nello schema o nella tabella specificati dal database di origine.

Per ulteriori informazioni, consulta Utilizzo delle integrazioni Zero-ETL nella Guida alla gestione di Amazon Redshift. Per ulteriori informazioni sugli stati di integrazione, consulta SVV_INTEGRATION_TABLE_STATE e SVV_INTEGRATION.

Note per l'utilizzo

I comandi di ALTER DATABASE si applicano alle sessioni successive e non alle sessioni correnti. Devi riconnetterti al database modificato per vedere l'effetto della modifica.

Esempi

L'esempio seguente rinomina un database denominato TICKIT_SANDBOX in TICKIT_TEST:

alter database tickit_sandbox rename to tickit_test;

L'esempio seguente modifica il proprietario del database TICKIT (il database corrente) in DWUSER:

alter database tickit owner to dwuser;

L'esempio seguente modifica la distinzione tra maiuscole e minuscole del database sampledb:

ALTER DATABASE sampledb COLLATE CASE_INSENSITIVE;

Nell'esempio seguente viene modificato un database denominato sampledb con livello di isolamento SNAPSHOT.

ALTER DATABASE sampledb ISOLATION LEVEL SNAPSHOT;

L'esempio seguente aggiorna le tabelle sample_table1 e sample_table2 del database sample_integration_db nell'integrazione Zero-ETL.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH TABLES sample_table1, sample_table2;

L'esempio seguente aggiorna tutte le tabelle sincronizzate e non riuscite nell'integrazione Zero-ETL.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH ALL tables;

L'esempio seguente aggiorna tutte le tabelle con ErrorState presenti nello schema sample_schema.

ALTER DATABASE INTEGRATION REFRESH IN ERROR TABLES in SCHEMA sample_schema;