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 [, ...] } | SET [ QUERY_ALL_STATES [=] { TRUE | FALSE } ] [ ACCEPTINVCHARS [=] { TRUE | FALSE } ] [ REFRESH_INTERVAL <interval> ] [ TRUNCATECOLUMNS [=] { TRUE | FALSE } ] [ HISTORY_MODE [=] {TRUE | FALSE} [ FOR { {ALL} 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.
-
- INTEGRAZIONE
-
Modifica un database di integrazione zero-ETL.
- AGGIORNA {{ALL | INERROR} TABELLE [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 le integrazioni Zero-ETL nella Amazon Redshift Management Guide. Per ulteriori informazioni sugli stati di integrazione, consulta SVV_INTEGRATION_TABLE_STATE e SVV_INTEGRATION.
- QUERY_ALL_STATES [=] {VERO | FALSO}
-
La clausola QUERY_ALL_STATES imposta se le tabelle di integrazione zero-ETL possono essere interrogate in tutti gli stati (,, e).
Synced
Failed
ResyncRequired
ResyncInitiated
Per impostazione predefinita, una tabella di integrazione zero-ETL può essere interrogata solo in stato.Synced
- ACCEPTINVCHARS [=] {VERO | FALSO}
-
La clausola ACCEPTINVCHARS imposta se le tabelle di integrazione zero-ETL continuano con l'inserimento quando vengono rilevati caratteri non validi per il tipo di dati VARCHAR. Quando vengono rilevati caratteri non validi, il carattere non valido viene sostituito con un carattere predefinito.
?
- REFRESH_INTERVAL <interval>
-
La clausola REFRESH_INTERVAL imposta l'intervallo di tempo approssimativo, in secondi, per aggiornare i dati dalla sorgente zero-ETL al database di destinazione.
interval
Può essere impostato da 0 a 432.000 secondi (5 giorni) per le integrazioni zero-ETL il cui tipo di origine è Aurora MySQL, Aurora PostgreSQL o RDS for MySQL. Per le integrazioni Zero-ETL di Amazon DynamoDB,interval
è possibile impostare 900—432.000 secondi (15 minuti —5 giorni).Per ulteriori informazioni sulla creazione di database con integrazioni zero-ETL, consulta Creazione di database di destinazione in Amazon Redshift nella Amazon Redshift Management Guide.
- TRUNCATECOLUMNS [=] {TRUE | FALSE}
-
La clausola TRUNCATECOLUMNS imposta se le tabelle di integrazione zero-ETL continuano con l'inserimento quando i valori per la colonna VARCHAR superano il limite. Quando, i valori vengono troncati per adattarsi alla colonna.
TRUE
- HISTORY_MODE [=] {TRUE | FALSE} [FOR {{ALL} TABLES [IN SCHEMA schema [,...]] | TABLE schema.table [,...]}]
-
Una clausola che specifica se Amazon Redshift imposterà la modalità cronologia per tutte le tabelle o le tabelle nello schema specificato che partecipano all'integrazione zero-ETL. Questa opzione è applicabile solo ai database creati per l'integrazione zero-ETL.
La clausola HISTORY_MODE può essere impostata su o.
TRUE
FALSE
Il valore predefinito èFALSE
. L'attivazione e la disattivazione della modalità cronologia è applicabile solo alle tabelle che si trovano nello stato.Synced
Per informazioni su HISTORY_MODE, consulta la modalità History nella Amazon Redshift Management Guide.
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 schema1.sample_table1
e schema2.sample_table2
del database sample_integration_db
nell'integrazione Zero-ETL.
ALTER DATABASE sample_integration_db INTEGRATION REFRESH TABLE schema1.sample_table1, schema2.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 imposta l'intervallo di aggiornamento per le integrazioni zero-ETL su 600 secondi.
ALTER DATABASE sample_integration_db INTEGRATION SET REFRESH_INTERVAL 600;
L'esempio seguente aggiorna tutte le tabelle presenti nello schema. ErrorState
sample_schema
ALTER DATABASE sample_integration_db INTEGRATION REFRESH INERROR TABLES in SCHEMA sample_schema;
L'esempio seguente attiva la modalità cronologia per la tabella. myschema.table1
ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true FOR TABLE myschema.table1
L'esempio seguente attiva la modalità cronologia per tutte le tabelle in. myschema
ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true for ALL TABLES IN SCHEMA myschema