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à.
INSERT
Inserisce nuove righe in una tabella. È possibile inserire una singola riga con la VALUES sintassi, più righe con la VALUES sintassi o una o più righe definite dai risultati di una query (... INSERT INTO SELECT).
Nota
Consigliamo l'uso del comando COPY per caricare grandi quantità di dati. L'uso di singole INSERT istruzioni per compilare una tabella potrebbe essere eccessivamente lento. In alternativa, se i tuoi dati esistono già in altre tabelle di database Amazon Redshift, usa INSERT INTO SELECT o CREATETABLEAS per migliorare le prestazioni. Per ulteriori informazioni sull'utilizzo del COPY comando per caricare le tabelle, consultaCaricamento di dati in Amazon Redshift.
Nota
La dimensione massima per una singola SQL istruzione è 16 MB.
Sintassi
INSERT INTO table_name [ ( column [, ...] ) ] {DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ( { expression | DEFAULT } [, ...] ) [, ...] ] | query }
Parametri
- table_name
-
Tabella temporanea o persistente. Solo il proprietario della tabella o un utente con INSERT privilegi sulla tabella può inserire righe. Se si utilizza la clausola di query per inserire righe, è necessario disporre dei SELECT privilegi sulle tabelle denominate nella query.
Nota
Usa INSERT (tabella esterna) per inserire i risultati di una SELECT query nelle tabelle esistenti nel catalogo esterno. Per ulteriori informazioni, consulta INSERT(tabella esterna).
- column
-
Puoi inserire i valori in una o più colonne della tabella. Puoi elencare i nomi delle colonne di destinazione in qualsiasi ordine. Se non si specifica un elenco di colonne, i valori da inserire devono corrispondere alle colonne della tabella nell'ordine in cui sono state dichiarate nell'CREATETABLEistruzione. Se il numero di valori da inserire è inferiore al numero di colonne nella tabella, vengono caricate le prime n colonne.
Il valore predefinito dichiarato o un valore nullo viene caricato in qualsiasi colonna non elencata (implicitamente o esplicitamente) nell'istruzione. INSERT
- DEFAULT VALUES
-
Se alle colonne della tabella sono stati assegnati i valori predefiniti al momento della creazione della tabella, utilizza queste parole chiave per inserire una riga costituita interamente da valori predefiniti. Se le colonne non hanno valori predefiniti, in quelle colonne vengono inseriti i valori null. Se viene dichiarata una delle colonne NOTNULL, l'INSERTistruzione restituisce un errore.
- VALUES
-
Utilizza questa parola chiave per inserire una o più righe, con ogni riga composta da uno o più valori. L'VALUESelenco per ogni riga deve essere allineato con l'elenco delle colonne. Per inserire più righe, utilizza una virgola come delimitatore tra ciascun elenco di espressioni. Non ripetere la VALUES parola chiave. Tutti gli VALUES elenchi per un'INSERTistruzione a più righe devono contenere lo stesso numero di valori.
- espressione
-
Un singolo valore o un'espressione che valuta un singolo valore. Ogni valore deve essere compatibile con il tipo di dati della colonna in cui viene inserito. Se possibile, un valore il cui tipo di dati non corrisponde al tipo di dati dichiarato della colonna viene automaticamente convertito in un tipo di dati compatibile. Per esempio:
-
Un valore decimale
1.1
viene inserito in una colonna come. INT1
-
Un valore decimale
100.8976
viene inserito in una colonna DEC (5,2) come.100.90
Puoi convertire esplicitamente un valore in un tipo di dati compatibile includendo la sintassi del cast di tipo nell'espressione. Ad esempio, se la colonna COL1 nella tabella T1 è una colonna CHAR (3):
insert into t1(col1) values('Incomplete'::char(3));
L'istruzione inserisce il valore
Inc
nella colonna.Per un'INSERTVALUESistruzione a riga singola, è possibile utilizzare una sottoquery scalare come espressione. Il risultato della sottoquery viene inserito nella colonna appropriata.
Nota
Le sottoquery non sono supportate come espressioni per istruzioni a più righe. INSERT VALUES
-
- DEFAULT
-
Usa questa parola chiave per inserire il valore predefinito per una colonna, come definito al momento della creazione della tabella. Se non esiste un valore predefinito per una colonna, viene inserito un valore nullo. Non è possibile inserire un valore predefinito in una colonna con un NOT NULL vincolo se a tale colonna non è assegnato un valore predefinito esplicito nell'istruzione. CREATE TABLE
- query
-
Inserisci una o più righe nella tabella definendo qualsiasi query. Tutte le righe prodotte dalla query vengono inserite nella tabella. La query deve restituire un elenco di colonne compatibile con le colonne della tabella, ma i nomi delle colonne non devono corrispondere.
Note per l'utilizzo
Nota
Consigliamo l'uso del comando COPY per caricare grandi quantità di dati. L'utilizzo di singole INSERT istruzioni per compilare una tabella potrebbe essere eccessivamente lento. In alternativa, se i tuoi dati esistono già in altre tabelle di database Amazon Redshift, usa INSERT INTO SELECT o CREATETABLEAS per migliorare le prestazioni. Per ulteriori informazioni sull'utilizzo del COPY comando per caricare le tabelle, consultaCaricamento di dati in Amazon Redshift.
Il formato dei dati per i valori inseriti deve corrispondere al formato dei dati specificato dalla CREATE TABLE definizione.
Dopo aver inserito un numero elevato di nuove righe in una tabella:
-
Applica l'operazione di vacuum alla tabella per recuperare spazio di memorizzazione e riordinare le righe.
-
Analizza la tabella per aggiornare le statistiche del pianificatore di query.
Quando i valori vengono inseriti nelle DECIMAL colonne e superano la scala specificata, i valori caricati vengono arrotondati per eccesso in modo appropriato. Ad esempio, quando un valore di 20.259
viene inserito in una colonna DECIMAL (8,2), il valore memorizzato è20.26
.
È possibile inserire in una IDENTITY colonna GENERATED BY DEFAULT AS. È possibile aggiornare le colonne definite come GENERATED BY DEFAULT AS IDENTITY con i valori forniti dall'utente. Per ulteriori informazioni, consulta GENERATED BY DEFAULT AS IDENTITY.